我目前正在使用以下库:
https://github.com/paypal/adaptiveaccounts-sdk-php/tree/master/samples/IPN
而且 Paypal IPN 似乎工作正常......我可以成功结帐并且来自 Paypal 的所有 POST 数据都记录到我的服务器,唯一的问题是 - 当用户返回网站时我如何检查它?
我目前将返回 URL 设置为与 IPN url 相同(在 github 中查找代码),在我获得所有有效数据后,用户返回到 IPN 页面并显示无效。
不太确定,有什么想法吗?
最佳答案
不应将 IPN 用作返回 URL。
- 返回 URL 将买家带回您的网站。返回 URL 处的页面应显示通用感谢页面或指示买家订单状态的页面。选择以上哪一项取决于您选择的 PayPal 产品、您的集成和您的购买流程。
- IPN 监听器的脚本 URL 用于自动执行您的订单处理过程。 IPN 监听器获取 IPN 消息,以您自己定义的方式处理您的订单。
IPN 监听器应该将非常具体的数据回发到 HTTP 状态为 200 的 PayPal IPN 端点。如果它还输出一个页面,事情就会变得太复杂。您需要区分买家访问和 PayPal IPN 消息,并需要进行相应的显示或 IPN 验证。为了简单起见,将这两件事分成两个页面/脚本会更好,也更合乎逻辑。
我认为这就是您的买家变得“无效”的原因:您的 IPN 监听器在买家返回您的监听器时获取请求数据,并使用该数据通过 PayPal 验证 IPN。 PayPal 返回“无效”,因为数据不是来自有效的 IPN 消息,因此无法验证。
关于php - Paypal IPN - 获得+然后丢失数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292661/