当 PayPal 发送付款通知 (IPN)
Posted
技术标签:
【中文标题】当 PayPal 发送付款通知 (IPN)【英文标题】:When PayPal send the payment notification (IPN) 【发布时间】:2015-01-10 21:22:51 【问题描述】:我正在为我的网站上的一家新商店工作。我想使用 Paypal IPN,以便我的商店可以自动处理订单。
我使用沙盒对我的代码进行相同的测试,但是我遇到了一些问题(我认为)。当用户点击我商店的购买按钮时,他会被重定向到贝宝网站(在本例中为沙盒页面)。然后用户进行付款(点击“立即购买”),PayPal 会显示一个带有付款概览的页面,在此页面中还有一个返回我的商店网页的链接。
根据我的测试,我了解到只有当用户单击此链接返回我的商店时,才会调用 IPN。即使付款完成,也不会调用替代 IPN。 事实上,如果我不点击 retutn 链接,我的商店不会处理订单,但如果我点击它,一切正常。
如果用户不点击返回链接,我想在实际付款后获取IPN之间的付款信息。
这可能吗?怎么样?
注意:在我的商店中,我使用 html 表单并通过 PayPal 获得付款。
【问题讨论】:
【参考方案1】:听起来你混淆了Instant Payment Notification (IPN) 和Payment Data Transfer (PDT)。
它们非常相似,因为 PayPal 的服务器会将数据 POST 到您指定的 URL,但无论用户是否返回您的站点,都会触发 IPN。任何交易发生后,PayPal 的服务器都会立即将数据发送到您的 IPN URL。 IPN 不是用户在屏幕上看到的任何东西,它根本不会在浏览器中发生。
PDT 旨在将数据返回到您的返回 URL/感谢页面,以便您可以在该页面上显示它。这发生在浏览器中,并且确实依赖于用户单击该链接或自动返回到您指定的返回 URL。不建议将这用于数据库更新、电子邮件通知等,因为即使启用了自动返回,也不能保证用户会到达那里,然后您的代码将不会针对该订单运行。
听起来您所追求的确实是 IPN,但您只是将 IPN URL 设置为与返回 URL 相同的内容,这不是正确的设置方法。
同样,IPN 是一个永远不会在浏览器中运行的独立脚本。
【讨论】:
以上是关于当 PayPal 发送付款通知 (IPN)的主要内容,如果未能解决你的问题,请参考以下文章