【问题标题】:PayPal Adaptive Payments return URL parametersPayPal 自适应支付返回 URL 参数
【发布时间】: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 检查这个答案:stackoverflow.com/a/17397444/1172363

标签: paypal paypal-adaptive-payments


【解决方案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。
  • 我也有同样的问题。适用于现场,但不适用于沙盒!也没有代码更改。
猜你喜欢
  • 2016-11-03
  • 2013-04-26
  • 1970-01-01
  • 2015-07-19
  • 2021-08-04
  • 2012-01-22
  • 2014-10-13
  • 2013-11-10
  • 2013-11-07
相关资源
最近更新 更多