5

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

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

  • 向 Paypal 发送请求:AdaptivePayments/Pay
  • 这会创建一个 Pay 请求,并返回一个 3 小时有效的 payKey(来源
  • 现在,我等待贝宝通过 IPN 向我发送请求。什么时候会,我会得到它的pay_key
  • 使用此 pay_key,我将调用AdaptivePayments/PaymentDetails以了解付款状态。

但我想知道,如果已经超过 3 小时,我该怎么办?(比如退款?)

那么确定的方法是什么?

谢谢你的帮助!

4

1 回答 1

11

好吧,我会在阅读后回答自己。

而不是使用调用时给出的payKey AdaptivePayments/Pay,其他解决方案是使用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,以便进行付款。

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

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

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

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

现在,您完成了更新数据库、致电买家等工作:)

对我有什么帮助:

于 2012-01-24T20:17:28.510 回答