paypal - PayPal 从 IPN 端点删除的 QueryString 值

标签 paypal paypal-ipn

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 6 年前

我们已经与 PayPal 进行了简单的支付集成 5 年,直到今天一直没有问题。在 IPN URL (notify_url) 中,我们在查询字符串中传递 3 个值,例如

https://www.example.com/callback/ipn?pspId=A&secCode=MnBP%2fxOwbQhXLd%2arD5xd6g%3d%3d&isPur=false

从今天开始,PayPal 会去除最后两个值并仅使用第一个查询字符串值进行调用,例如

https://www.example.com/callback/ipn?pspId=A

我们使用 secCode 值作为我们在回调中验证的签名,以防止对表单进行任何修改。为什么 PayPal 会突然开始从查询字符串中剥离值?我怀疑他们应该在 POST 中,但我不确定为什么突然改变?

最佳答案

好的,我们现在已经意识到 一些 PayPal 服务器在第一个 & 符号处终止。这解释了为什么我们得到第一个查询字符串值而不是其他值。

似乎这种行为不仅限于 notify_url 值,而且正如 Mike 在评论中所建议的那样,这种情况也发生在 CUSTOM 字段中。如果您要推送一系列带有与号分隔符的名称值对,您需要切换到其他分隔符或对整个值进行 URL 编码。

我们现在正在测试以查看对整个回调 URL 进行 URL 编码是否仍会导致进行实际回调。

编辑:

是的,对整个 notify_url 值进行编码的 URL 解决了这个问题并保留了查询字符串。

编辑 2:

似乎对整个值进行 URL 编码不再有效,所以我假设 PayPal 已经恢复到我们遇到这些问题之前的原始行为。希望这将在所有入站服务器中保持一致,并且现在将保持不变。

关于paypal - PayPal 从 IPN 端点删除的 QueryString 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42669566/

上一篇:Paypal 整合直接接受信用卡付款

下一篇: Paypal ssl握手失败

相关文章:

ruby - Paypal 沙盒不发送 Webhook 或 IPN 通知

node.js - Paypal 无效否定测试输入

database - 使用 Paypal API 的原子性

php - 使用 php 强制下载受限制的 zip 文件

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

php - Paypal IPN - 如何在监听器中获取 option_selection 的值?

Perl Paypal IPN 监听器返回 "500 SSL Handshake Failure"消息

php - 如何将 Paypal 与 codeigniter 集成?

PayPal API DoDirectPayment 必填 IP 字段不支持 IPv6

android - (intent.getStringExtra ("PaymentDetails") 为空