贝宝未来付款 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 来解决问题。如果启用此功能,它似乎会覆盖未来的付款,因此它不再有效,而是使用快速结账支付流程。
我目前正在尝试将我的应用程序与 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 来解决问题。如果启用此功能,它似乎会覆盖未来的付款,因此它不再有效,而是使用快速结账支付流程。