我有一个关于 Paypal IPN
的问题,我想知道 IPN
什么时候激活并将它的消息发送到我的网站。
我的网站目前有一个购买按钮
。当客户购买服务时,他被引导至 Paypal 。一旦他支付了服务费,就什么也没有发生。为了让我收到 IPN 通知,用户必须单击“返回商家网站
”或任何链接,然后我会收到 IPN 通知。
这正常吗,每个人都这样吗? 因为现在,大多数人在完成付款后,只是关闭网站,我不会收到任何通知。
感谢您的帮助!
最佳答案
你的问题遗漏了很多信息,所以我会为你逐一分析:
如果您还没有沙箱帐户,请阅读此处了解如何设置沙箱帐户:https://developer.paypal.com/docs/classic/lifecycle/sb_create-accounts/
请记住,您的沙盒帐户在各个方面都与您的实时 paypal 帐户完全分开。所有设置都需要根据需要进行检查和自定义。
在您的沙盒帐户上设置您的 IPN URL:https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_profile-ipn-notify
设置完成后,您需要下载代码(PHP 或其他)并将其设置为监听器(在上面的沙盒配置文件链接中引用)。您可以在此处找到 IPN 代码示例:https://github.com/paypal/ipn-code-samples
设置完成后,您需要将监听器设置为使用沙盒模式,然后登录到您的真实账户,然后从此处运行 IPN 模拟器:https://developer.paypal.com/developer/ipnSimulator/
Paypal 将向您的 IPN 监听器发送消息,您需要对这些消息进行一些处理,通常将它们输出到某种日志文件中。如有任何问题,您可以在此处阅读 Paypals 反馈和 IPN 数据/交付信息 https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_display-ipns-history&nav=0.3.4 [从 Paypal 菜单上的
History->ipnHistory
找到] 它应该列出它们。您可以重新发送任何失败的、排队的或未送达的消息。Paypal 是一个用于编码的非常有据可查和非常结构化的系统。我恨它。 Use Stripe .
我喜欢要点。
Paypal 声称他们将在 5 天内尝试并重新发送失败/排队的 IPN 16 次。我还没有看到这个,你需要手动重新发送它们(至少,沙盒)
请记住,在您的支付系统上线之前,您对沙盒账户所做的所有设置和更改也需要对您的真实账户进行!
解决方案
My return_URL is the location of my IPN.php file which take care of the data sent and received. My problem is that the IPN is only firing when I click the "Return to merchant website" and not when the payment is actually completed
通过阅读您的评论,您所做的是将您的 IPN 页面设置为您从 paypal 页面返回,这不是 IPN 应该工作的方式,IPN 页面永远不应该客户访问,仅通过 Paypal。
通读我的答案(第 2、3、4 点)并按照我上面的描述设置你的 IPN 网络链接,你的 return_url
值应该是一个基本页面对客户说“交易完成”。如上所述,IPN 页面是在您的 Paypal 帐户(沙盒和实时)上定义的。
这将解决您的问题。
关于Paypal IPN 未触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292841/