paypal - 使用 PayPal 自适应支付的 PayKey 工作流程

标签 paypal paypal-adaptive-payments paykey

我正在尝试使用新的 PayPal API(自适应支付)实现支付系统。

到目前为止,我有这个工作流程:

  • 向 PayPal 发送请求:AdaptivePayments/Pay
  • 这将创建一个 Pay 请求,并返回一个有效期为 3 小时的 payKey ( source )
  • 现在,我等待 paypal 通过 IPN 向我发送请求。到时,我会得到 pay_key
  • 使用此 pay_key,我将调用 AdaptivePayments/PaymentDetails 以了解付款状态。

但是我在想,超过3个小时怎么办? (比如退款?)

那什么是正确的做法呢?

最佳答案

好吧,我会在阅读一些内容后回答自己。

不是使用调用AdaptivePayments/Pay时给出的payKey,而是使用trackingId。

方法如下:

第一步,您创建一个 AdaptivePayments/Pay 并指定一个 trackingId(必须是唯一的):

{
  "actionType":"PAY",
  "currencyCode":"USD",
  "receiverList":{"receiver":[{"amount":"1.00","email":"seller_1288085303_biz@gmail.com"}]},
  "returnUrl":"http://apigee.com/console/-1/handlePaypalReturn",
  "cancelUrl":"http://apigee.com/console/-1/handlePaypalCancel?",
  "trackingId":"abcde-12345-unique-of-course",
  "ipnNotificationUrl":"http://apigee.com/console/-1/ipn",
  "requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}

作为响应,您将拥有 payKey,您会将买家重定向到该 payKey 以进行付款。

然后,对于此付款的整个演变过程,您将收到您的 IPN url(此处为“http://apigee.com/console/-1/ipn”)的通知。

当您在该地址收到一个 (POST) 请求时,检查 paypal 的有效性,您将在参数中获得一个 trackingId。检查此 trackingId 是否存在,然后像这样使用该 trackingId 询问 AdaptivePayments/PaymentDetails:

{
 "trackingId":"{put here}",
 "requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}

作为返回,您将获得完整详细的付款状态。

现在,您要做的工作是更新您的数据库,给您的买家打电话,等等 :)

什么对我有帮助:

关于paypal - 使用 PayPal 自适应支付的 PayKey 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993111/

相关文章:

php - 实现 paypal 的 Express checkout API 有问题吗?

c# - 如何生成唯一的付款号码?

ios - Paypal MPL iOS 错误 -1

Django:有没有关于 PayPal 自适应支付的应用程序推荐?

paypal - 授权收取 1.00 美元费用而不收取

paypal - 如何使用 PayPal API 凭据?

ruby-on-rails - 使用 rails & active_paypal_adaptive_payment 执行预批准付款

paypal - 我如何跟踪从 paykey 请求到 IPN 响应的交易?

iphone - 在iphone的paypal集成中获取paykey后如何获取Paypal交易ID?