贝宝未来付款 returns 'approval_url'

PayPal Future Payment returns 'approval_url'

我目前正在尝试将我的应用程序与 Future Payments 集成,并且在文档中提到:

Unlike the standard REST API docs that demonstrate a one time payment, a future payment doesn't require you to separately get payment approval after getting initial user consent. The payment is pre-approved by the user.

所以看看这个例子,我应该得到一个包含以下内容的响应:

"state": "authorized"
"links": [
                            {
                                "href": "https://api.paypal.com/v1/payments/authorization/4TD55050SV609544L",
                                "method": "GET",
                                "rel": "self"
                            },
                            {
                                "href": "https://api.paypal.com/v1/payments/authorization/4TD55050SV609544L/capture",
                                "method": "POST",
                                "rel": "capture"
                            },
                            {
                                "href": "https://api.paypal.com/v1/payments/authorization/4TD55050SV609544L/void",
                                "method": "POST",
                                "rel": "void"
                            },
                            {
                                "href": "https://api.paypal.com/v1/payments/authorization/4TD55050SV609544L/reauthorize",
                                "method": "POST",
                                "rel": "reauthorize"
                            },
                            {
                                "href": "https://api.paypal.com/v1/payments/payment/PAY-2C433581AX997613HKJFBVLI",
                                "method": "GET",
                                "rel": "parent_payment"
                            }
                        ],

据我了解,交易以及请求 header 中的客户端元数据 ID 和访问令牌应该自动处理,无需进一步批准,因为用户已经同意。

因此,如果交易意图是 'sale',成功响应 'state' 将是 'completed',如果意图是 'authorize',则状态将是 'authorized'.

这是有道理的,但是在测试我的应用程序时,我收到了批准 url 的响应,我需要将用户重定向到该响应,并且状态是 'created' 而不是 'completed/authorized' ? -

"state": "created"
"create_time": "2016-03-20T00:42:25Z",
"links": [
                           {
                             "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-3NA62949E72063722K3W7D4I",
                             "rel": "self",
                             "method": "GET"
                            },
                            {
                              "href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-41A06151Y6402822R",
                              "rel": "approval_url",
                              "method": "REDIRECT"
                            },
                            {
                              "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-3NA62949E72063722K3W7D4I/execute",
                              "rel": "execute",
                              "method": "POST"
                            }
               ]

我设法通过从范围中删除 express_checkout 来解决问题。如果启用此功能,它似乎会覆盖未来的付款,因此它不再有效,而是使用快速结账支付流程。