PayPal 自适应支付返回 URL 参数

Posted

技术标签:

【中文标题】PayPal 自适应支付返回 URL 参数【英文标题】:PayPal Adaptive Payments return URL parameters 【发布时间】:2021-05-10 05:15:54 【问题描述】:

我在 php 中使用 PayPal Adaptive Payments(一种已弃用的集成方法)。

在调用“支付”请求时,我总是习惯将返回 URL 设置为:

https://my-website/my-return-page.php?payKey=$payKey

然后,当支付成功时,PayPal 应该将用户重定向到类似:

https://my-website/my-return-page.php?payKey=AP-ABCDEF123456

但现在,PayPal API 抛出错误:

The URL https://my-website/my-return-page.php?payKey=$payKey is malformed

我们的结果没有任何变化,它只是停止工作。

我需要返回 URL 中的 payKey,所以我可以查看 paymentDetails。

【问题讨论】:

PayPal 不会自动将自己的键值添加到返回 URL 中吗? 不,默认情况下不添加(至少不适合我)。在 URL 末尾添加 &payKey=$payKey 对我来说效果很好。 @PrestonPHX 检查这个答案:***.com/a/17397444/1172363 【参考方案1】:

添加 &payKey=$payKey

哦,根据you linked 的答案,您按原样发送实际文本,而 PayPal 正在用该值动态替换它。

似乎不再支持语法了;它没有记录在案。

我建议生成您自己的唯一 ID,并将其作为 ?id=abcde12345 传递。然后,当您第一次从初始 Pay API 响应中获取 payKey 时,将此 payKey 与您自己的 id 相关联(例如 abcde12345)。如果您碰巧使用 Adaptive Payments 的参数/功能,它可能与 TrackingID 或 Invoice ID 相同。

然后,退货应该有 ?id=abcde12345,您可以查找 payKey 并从那里继续使用 paymentDetails。


您还可以将自适应付款的这种行为变化报告为 PayPal 错误,但由于它是一种非常陈旧且已弃用的产品,可能会在某个时候被淘汰,因此我不确定重新实施未记录的产品有多大的吸引力功能将具有,因此您自己的 id 的上述解决方法似乎是一个更好的计划。

【讨论】:

奇怪的是...这个东西只在“沙盒”模式(测试站点)下被破坏......当使用实时模式(生产站点)时,它再次工作(使用完全相同的参数)... Paypal 没有出现错误...我按预期在返回 URL 中获得了 payKey。 我也有同样的问题。适用于现场,但不适用于沙盒!也没有代码更改。

以上是关于PayPal 自适应支付返回 URL 参数的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 自适应支付重定向 URL GET 变量

自适应支付 paypal - 没有支付 api 操作的 pdt 数据

PayPal自适应支付链式支付错误

paypal自适应支付IPN中的自定义字段

Paypal 自适应支付 - IPN 和成功的返回响应

Paypal 自适应支付和 IPN