我正在 Ruby on Rails 应用程序中通过 ActiveMerchant gem 使用快速结账 API。整个授权和捕获流程在 3 小时内完成时运行良好。但之后我的 token 就会过期并且我会丢失交易。即使授权和捕获文档说授权有效期为3天(至少根据 https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_admin_authcapture )。
那么,token过期后如何捕获交易呢?
最佳答案
您不必传递 token 。您应该遵循以下流程。
- 进行 SetExpressCheckout API 调用并将付款操作设置为授权 (A)
- 取回 token
- 使用 token 将买家重定向至 PayPal 以登录并同意付款
- 买家会被重定向回您的网站,并返回 token 和付款人 ID
- 然后您可以使用 token 执行 GetExpressCheckoutDetails API 调用。(此步骤是可选的)
- 然后执行 DoExpressCheckoutPayment API,传递 token 并将付款操作设置为授权 (A)
然后完成 Express Checkout 授权。
现在,您将在一两天后返回并执行 DoCapture API,其中您发送之前从 DoExpressCheckoutPayment API 返回的交易 ID。您不必在此处再次发送 token 。完成 DoCapture 后,资金就会显示在您的帐户中。
关于paypal - 如果 PayPal token 在 3 小时后过期,我该如何在授权 1 天后捕获付款?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240419/