贝宝 IPN 意外更改

PayPal IPN Unexpected Changes

从 2017 年 3 月 8 日左右的某个时候开始,我们注意到一些(不是全部)PayPal IPN 出现异常行为。贝宝似乎正在推出某种变化,还有一些其他人报告了其他事情,例如:QueryString values removed from the IPN endpoint by PayPal

似乎有多个版本的 PayPal 系统发送 IPN,其中一些包含 notify_version=3.8,一些包含 notify_version=UNVERSIONED

主要问题是来自“3.8”的 IPN 有 receiver_email,但来自 "UNVERSIONED" 的没有。

在某些情况下,我们会同时收到重复的 IPN,一个是“3.8”版本,一个是 "UNVERSIONED" 版本。似乎两个版本的 PayPal 都在同时处理同一件事。 “3.8”版本似乎总是成功确认 IPN,而 "UNVERSIONED" 版本似乎总是以 "INVALID".

响应

一些用户报告说 PayPal 正在对我们为 return 发送的值(结帐后出现的 URL)进行解密。例如,像 http://example.com/some%3Dvalue 这样的 URL 有时会被解码为 http://example.com/some=value,这是不正确的并导致 404.

我知道 PayPal 将推出 new changes on 03/29,这与更严格地遵守其数据格式有关,但我们已经确认我们遵守了这一规定,这还有几周的时间。

几天后,IPNs 恢复正常,没有任何变化。 PayPal 从未回复我们的支持电子邮件或承认任何问题。