gpt4 book ai didi

php - Paypal IPN未调用问题

转载 作者:可可西里 更新时间:2023-11-01 00:20:55 24 4
gpt4 key购买 nike

我有一些问题,关于贝宝IPN没有被解雇我的一个服务器。下面是场景。
1)我有两个站点站点A(旧)位于服务器X上,站点B(新)位于服务器Y上。这两个站点都具有相同的PayPal Express签出表单提交和IPN代码。
2)站点A运行顺利,PayPal Express签出表单提交,IPN被正确触发。
3)但是对于站点B,虽然我们的表单提交正确并且付款成功,但IPN没有被解雇。
更多信息:
我检查了PayPal的商业账户,看是否有添加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时,都将使用默认URL(例如,由于易趣的快速结帐集成不传递通知URL,易趣交易将发送到默认URL)
禁用-->您从未设置默认URL,但在事务中传递的IPN URL引发了太多错误。您应该看到空地址字段和正在选中的选项“Do not receive IPN messages(disabled)”。
默认的URL设置禁用->默认IPN URL在某个时间点被配置,但是由于默认URL或动态URL上的失败,IPN特性已被禁用。您将看到url和“message delivery=disabled”
为什么PayPal禁用IPN交付?
PayPal希望您的服务器用HTTP200 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消息标记为“发送”(HTTP 200接收),则IPN处理的下一步是将数据发布回Paypal进行验证。您可以在脚本中启用日志记录(在服务器上的文件中转储HTTP请求和响应),或者您可以与PayPal MTS(https://www.paypal.com/mts)联系,并询问PayPal侧可见什么。
检查PayPal连接的一个好的测试是在Web服务器本身上运行以下命令:
curl-d“cmd=_notify-validate”-vhttps://www.paypal.com/cgi-bin/webscr
如果您看到邮件已经到达PayPal,但PayPal对所有消息都无效:
检查你的代码,https://github.com/paypal/ipn-code-samples是一个很好的样本源
如果贝宝对某些消息无效,您可能会遇到编码问题。您最好在https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-language-encoding下设置字符编码设置-将其设置为utf8以获得最佳结果。
如果PayPal以验证方式响应,但在验证支付之后,脚本不会继续处理,请确保运行一个Times(或使用所使用的语言的等价物)来移除空白、行提要和CRLF。
之后发生的事情取决于IPN脚本,在连接到数据库、解析IPN消息以获取特定数据或某些编码错误时,您可能会遇到错误。
简而言之:如果IPN消息已经被接收、发布和验证,其他一切都会在服务器上的代码中发生,您必须开始挖掘日志文件(或者确保正在创建日志,这总是一个好主意)以了解发生了什么。如果问题是可重复的,那么最好检查一个示例脚本(包括日志记录)发生了什么。
希望这有助于解决IPN的正面问题-任何有关IPN的问题?联系PayPal.com /MTS,如果你想调查在PayPal方面发生了什么。

关于php - Paypal IPN未调用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23882891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com