贝宝服务器 API。没有转账

Posted

技术标签:

【中文标题】贝宝服务器 API。没有转账【英文标题】:Paypal Server API. No money transfered 【发布时间】:2021-06-14 02:46:53 【问题描述】:

我正在将 paypal 集成到我们的购物系统中。

我正在使用 Java API。

目前的形式如下:

    用户选择paypal作为支付方式,点击“Pay Order”

    服务器发送一个带有捕获意图的 createOrder 请求。

    服务器收到带有链接的响应。

    用户被重定向到“批准”链接。

    完成后,paypal 将用户重定向到带有“感谢您的订单消息”的商店页面。

所有这些都按预期工作。

但是没有付款/没有转账。

我在这里做错了什么?

提前致谢!

请求/响应参考:

Request: , 
             "application_context" : 
                 "user_action" : "PAY_NOW",
                     "landing_page" : "BILLING",
                     "return_url" : "https://www.foobar.de.localhost:8443/payment/paypal?result=ok&order_id=MGS063464&secret=2E1C1B304178...",
                     "brand_name" : "<removed>",
                     "cancel_url" : "https://www.foobar.de.localhost:8443/payment/paypal?result=cancel&order_id=MGS063464",
                     "shipping_preference" : "SET_PROVIDED_ADDRESS"
             ,
                 "purchase_units" : [ 
                     "amount" : 
                         "breakdown" : 
                             "shipping" : 
                                 "value" : "3",
                                 "currency_code" : "EUR"
                             ,
                             "item_total" : 
                                 "value" : "2.45",
                                 "currency_code" : "EUR"
                             
                         ,
                         "value" : "5.45",
                         "currency_code" : "EUR"
                     ,
                     "reference_id" : "MGS063464",
                     "shipping" : 
                         "address" : 
                             "country_code" : "DE",
                             "address_line_1" : "<removed>",
                             "admin_area_2" : "<removed>",
                             "postal_code" : "<removed>"
                         ,
                         "name" : 
                             "full_name" : "<removed>"
                         
                     ,
                     "description" : "<removed>,
                     "items" : [ 
                         "quantity" : "1",
                         "name" : "<removed>",
                         "unit_amount" : 
                             "value" : "2.45",
                             "currency_code" : "EUR"
                         ,
                         "sku" : "OCI08"
                      ]
                  ],
                 "intent" : "CAPTURE"
         
Response: , 
              "create_time" : "2021-03-14T10:52:46Z",
                  "purchase_units" : [ 
                      "payee" : 
                          "email_address" : "<removed>",
                          "merchant_id" : "L4EC8HB5DTVSC"
                      ,
                      "amount" : 
                          "breakdown" : 
                              "shipping" : 
                                  "value" : "3.00",
                                  "currency_code" : "EUR"
                              ,
                              "item_total" : 
                                  "value" : "2.45",
                                  "currency_code" : "EUR"
                              
                          ,
                          "value" : "5.45",
                          "currency_code" : "EUR"
                      ,
                      "reference_id" : "MGS063464",
                      "shipping" : 
                          "address" : 
                              "country_code" : "DE",
                              "address_line_1" : "<removed>",
                              "admin_area_2" : "<removed>",
                              "postal_code" : "<removed>"
                          ,
                          "name" : 
                              "full_name" : "<removed>"
                          
                      ,
                      "description" : "<removed>",
                      "items" : [ 
                          "quantity" : "1",
                          "name" : "<removed>",
                          "unit_amount" : 
                              "value" : "2.45",
                              "currency_code" : "EUR"
                          ,
                          "sku" : "OCI08"
                       ]
                   ],
                  "links" : [ 
                      "method" : "GET",
                      "rel" : "self",
                      "href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P"
                  , 
                      "method" : "GET",
                      "rel" : "approve",
                      "href" : "https://www.sandbox.paypal.com/checkoutnow?token=5MY66978KX626104P"
                  , 
                      "method" : "PATCH",
                      "rel" : "update",
                      "href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P"
                  , 
                      "method" : "POST",
                      "rel" : "capture",
                      "href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P/capture"
                   ],
                  "id" : "5MY66978KX626104P",
                  "intent" : "CAPTURE",
                  "status" : "CREATED"
          

【问题讨论】:

【参考方案1】:

您缺少 API 调用,第 5 步应改为:服务器发送捕获订单请求。

您最后的第 6 步应该是仅在捕获成功的情况下感谢买家

请参阅the documentation 中的“捕获订单”。


重定向到“批准”链接是旧网站的旧集成方法。为了获得现代用户体验,您应该通过将“创建订单”和“捕获订单”更改为仅返回 JSON 数据(没有其他 html 或文本)的两个服务器路由来保持页面加载(而不是重定向)

将这些路由与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

【讨论】:

非常感谢。我希望在这个 *** 文档中有一些订单流/请求图。

以上是关于贝宝服务器 API。没有转账的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 PayPal 账户向银行账户或信用卡转账?

在 PHP 中使用 Paypal 进行 ACH 支付转账

贝宝 ACH 转账?

转账到用户的银行账户

贝宝转账自动收到多对多其他用户

贝宝沙盒内部服务错误