Paypal IPN - 获取 + 然后丢失数据?
Posted
技术标签:
【中文标题】Paypal IPN - 获取 + 然后丢失数据?【英文标题】:Paypal IPN - Getting + then losing data? 【发布时间】:2015-09-26 08:42:59 【问题描述】:我目前正在使用以下库:
https://github.com/paypal/adaptiveaccounts-sdk-php/tree/master/samples/IPN
Paypal IPN 似乎工作正常...我可以成功结帐,并且所有来自 Paypal 的 POST 数据都记录到我的服务器,唯一的问题是 - 当用户返回网站时我如何检查它?
我目前将返回 URL 设置为与 IPN url 相同(在 github 中查找代码),在我获得所有有效数据后,用户返回到 IPN 页面并显示无效。
不太清楚,有什么想法吗?
【问题讨论】:
我应该将数据存储在 SESSION 中吗? 【参考方案1】:IPN 不应用作返回 URL。
返回 URL 将买家带回您的网站。退货 URL 处的页面应显示通用感谢页面或指示买家订单状态的页面。选择上述哪一项取决于您选择的 PayPal 产品、您的集成和您的购买流程。 IPN 侦听器的脚本 URL 用于自动化您的订单处理过程。 IPN 侦听器获取 IPN 消息,以您自己定义的方式处理您的订单。IPN 侦听器应该将非常具体的数据回传到带有 HTTP 状态 200 的 PayPal IPN 端点。如果它还输出一个页面,这会使事情变得过于复杂。您需要区分买家访问和 PayPal IPN 消息,并需要进行相应的显示或 IPN 验证。为简单起见,将这两件事分成两个页面/脚本会更好,更合乎逻辑。
我认为这就是您的买家“无效”的原因:您的 IPN 侦听器在买家返回您的侦听器时获取请求数据,并使用该数据通过 PayPal 验证 IPN。 PayPal 返回“无效”,因为数据不是来自有效的 IPN 消息,因此无法验证。
【讨论】:
【参考方案2】:不是 Php 开发人员,也没有看过,但如果你真的想使用相同的 URL(我不会 - 它们用于不同的目的),那么区别将是 (http) 请求方法:
GET
用于重定向和
POST
用于 IPN
这将是您确定该 url 获取和处理您认为合适的类型的 Request 的一种方式。
【讨论】:
以上是关于Paypal IPN - 获取 + 然后丢失数据?的主要内容,如果未能解决你的问题,请参考以下文章