php – Paypal IPN没有调用问题

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Paypal IPN没有调用问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些问题,关于Paypal IPN没有被我的一个服务器解雇.以下是场景.

1)我有两个站点站点A(旧)在服务器X上,站点B(新)在服务器Y上.具有相同Paypal快递结账表单提交和IPN代码站点.
2)网站A运行顺利,PayPal快速结账表单提交,IPN被正确解雇.
3)但是对于站点B,虽然我们的表单已正确提交并且付款成功,但IPN并未被解雇.

更多信息 :
       我检查了Paypal的业务A / c,了解IPN所在的IP /域可能需要的任何功能.

我还检查了Paypal支持他们说从2014年3月25日起他们已经告诉我们将Paypal的API相关IP地址添加到我们的服务器火墙.我们已经完成了添加这些IP地址,但仍然无法正常工作.

URL : https://ppmts.custhelp.COM/app/answers/detail/a_id/14/related/1/session/L2f2LzEvdGltZS8xNDAXMTcyODkwL3NpZC9vbENEUWhWbA%3D%3D

希望以下信息对您而言足够.如果我们中的任何一个人有解决方案,请建议.

提前致谢.

解决方法

不幸的是,我没有太多特定信息可供使用,所以让我们将其作为IPN故障排除指南以供将来参考:)

检查给定帐户的IPN功能状态 –

https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify(首先登录您的帐户,然后按照链接进入IPN设置)

替代方案

>登录PayPal.com
>打开个人资料 – >我的销售偏好
>找到“即时付款通知”选项

IPN有四种状态:

>已启用 – >如果系统提示您选择设置,则IPN为
如果在通过URL中传递通知URL,则将启用和IPN
结账请求.
>启用认网址集 – >如果显示通知URL”并且“消息传递”设置为启用,则每次在结帐请求中未指定其他IPN URL时将使用认URL(例如,eBay事务将被发送到认URL,因为易趣的快速结账集成未通过通知网址)
>已禁用 – >您从未设置认URL,但在事务中传递的IPN URL已经抛出了太多错误.您应该看到空的地址字段和选中“不接收IPN消息(已禁用)”选项.
>使用认网址设置已停用 – >在某个时间点配置了认IPN URL,但由于认URL或动态URL上的故障,IPN功能已被禁用.您将看到URL和“Message Delivery = Disabled”

为什么PayPal会禁用IPN传送?

PayPal希望您的服务器使用HTTP-200 OK消息进行响应.如果我们收到不同的响应代码,则会启动重试机制.
IPN消息总共发送16次,每次尝试之间的时间帧增加.如果一个URL的错误达到某个阈值,则会自动禁用IPN.您将收到PayPal帐户中列出的主要邮件地址的电子邮件,警告您即将停用

>如果启用了IPN,请检查https://www.paypal.com/cgi-bin/webscr?cmd=%5fdisplay%2dipns%2dhistory&nav=0%2e3%2e4下最后一条IPN消息的状态

它将显示服务器发送回的最后一个HTTP响应代码,您可以过滤失败/重试消息.

检查http://en.wikipedia.org/wiki/List_of_HTTP_status_codes以查看状态的含义.
>如果没有HTTP响应代码,则在较低级别存在连接问题.
最常见的原因是:

>防火墙
> SSL连接问题(尝试使用HTTP)
>黑洞布线

如果您认为所有内容都已正确配置,请查看https://ppmts.custhelp.com/app/answers/detail/a_id/733
>如果IPN消息被标记为“SENT”(HTTP 200已接收),则IPN处理的下一步是将数据发布回PayPal以进行验证.您可以在脚本中启用日志记录(将HTTP请求和响应转储到服务器上的文件中) – 或者您可以联系PayPal MTS(https://www.paypal.com/mts)并询问PayPal端可见的内容.

检查与paypal连接的一个很好的测试是在Web服务器本身上运行以下命令:

curl -d“cmd = _notify-validate”-v https://www.paypal.com/cgi-bin/webscr
>如果您发现POST已到达PayPal,但PayPal会对所有消息的INVALID做出响应:

检查您的代码,https://github.com/paypal/ipn-code-samples一个很好的样本来
>如果PayPal以某些消息的INVALID响应,您可能会遇到编码问题.您最好在https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-language-encoding下设置字符编码设置 – 将它们设置为UTF8以获得最佳效果.
>如果PayPal以VERIFIED响应,但您的脚本在验证付款后未继续处理,请确保运行TRIM()(或使用的语言中的等效项)以删除空格,换行符和CRLF
>之后发生的事情取决于IPN脚本,在连接到数据库时可能会遇到错误,解析IPN消息中的某些数据或某些编码错误.

简而言之:如果收到IPN消息,回发并验证,其他所有内容都发生在您服务器上自己的代码中,您必须开始挖掘日志文件(或确保创建日志,这总是很好的想法)找出发生了什么.如果问题是可重现的,那么检查其中一个示例脚本(包括日志记录)会发生什么事情总是一个好主意

希望这有助于解决IPN问题 – 任何有关IPN的问题?如果您想调查PayPal侧发生的事情,请联系paypal.com/mts.

脚本宝典总结

以上是脚本宝典为你收集整理的php – Paypal IPN没有调用问题全部内容,希望文章能够帮你解决php – Paypal IPN没有调用问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。