0

我一直在尝试通过使用 Paypal Adaptive API 来解决以下问题。我已将 Paypal Adaptive 链式支付 API 与我的网站集成。当用户点击“paypal 支付”按钮时,需要到paypal 网站进行支付。我的问题从这里开始

  • Paypal返回我的returnURL,但是我如何在返回后绑定原始付款请求。returnURL 是一个 HTTP GET,没有来自 paypal 的查询参数。
  • 如果我想使用 IPN,这将不允许我在本地 Windows 网络服务器中进行测试,因为它不支持 localhost 或 127.0.0.1。我什至尝试让我的面向公众的 IP 并尝试在我的路由器中进行端口转发,一寸不让

现在,当用户成功支付时,我希望能够将各种支付信息表到我的数据库中,并且在投入生产之前我没有适当的方法在开发中进行

令我倍感惊讶的是,像 paypal 这样价值十亿美元的公司可以将如此无用的代码交付给开发人员进行集成

我也看看这个答案,Adaptive Payments Paypal : return url without data? . 贝宝的人说

当用户返回 returnUrl 端点时,您调用 PaymentDetails API 并检查状态并继续。

那么问题是调用PaymentDetails,我需要paytoken。我怎样才能从returnurl获得paytoken?就像现在一样,返回 URL 没有任何查询参数。

4

1 回答 1

7

在你returnUrl刚刚追加payKey=${payKey}

例如,如果您的 returnUrl 是example.com/return.html?myparameter=value- 它将变为example.com/return.html?myparameter=value&payKey=${payKey}
PayPal 将替换${payKey}为实际的 PayKey。由于它是一个 url,因此您需要对 returnUrl 的值进行 url 编码 - 所以上面的 url 变为example.com%2Freturn.html%3Fmyparameter%3Dvalue%26payKey%3D%24%7BpayKey%7D

这是一个示例curl命令

curl -s --insecure -H "X-Paypal-Security-Userid: XXX" -H "X-Paypal-Security-Password: XXX" -H "X-Paypal-Security-Signature: XXX" -H "X-Paypal-Request-Data-Format: NV" -H "X-Paypal-Response-Data-Format: NV" -H "X-Paypal-Application-Id: APP-80W284485P519543T" https://svcs.sandbox.paypal.com/AdaptivePayments/Pay -d "requestEnvelope.errorLanguage=en_US&clientDetails.ipAddress=127.0.0.1&clientDetails.deviceId=mydevice&clientDetails.applicationId=PreApprovalNvpDemo&cancelUrl=http%3A%2F%2Flocalhost%2Fcancel.html&currencyCode=USD&actionType=PAY&receiverList.receiver(0).email=pd_1265515509_biz@yahoo.com&&receiverList.receiver(0).amount=100.00&feesPayer=EACHRECEIVER&memo=SimplePay&returnUrl=http%3A%2F%2Flocalhost%2Freturn.html%3FpayKey%3D%24%7BpayKey%7D"
于 2013-07-01T04:26:22.350 回答