>使用PayPal的IPN模拟器开发时,您可能会遇到验证消息时返回“无效”的情况,无论您设置的编码或所有条件与匹配和有效。
>这是一个例子。
说我们在IPN模拟器中有一个日期:
>
这是在听众的末端(在您的php代码中)到达:
Fri Aug 19 2016 09:25:00 GMT+0100 (GMT Daylight Time)substring GMT 0100是有问题的,因为php函数urldecode将其解释为一个空间,因此将其解码为:
请注意,丢失了,变成了一个太空字符。
Fri%20Aug%2019%202016%2009%3A25%3A00%20GMT+0100%20%28GMT%20Daylight%20Time%29
重新编码以将其发送回PayPal进行验证时,该验证会失败,因为该验证不再是字段中的值 - 丢失了。这是一个非常非常小的细节,在手工指示现场值时很难发现,但它在那里。根据PayPal文档,这足以使验证返回“无效”。
>Fri Aug 19 2016 09:25:00 GMT 0100 (GMT Daylight Time)有两种解决方案:
>使用RawUrlencode和RawUrldeCode而不是其非RAW对应物。这些也编码符号,而不是将其变成太空字符,然后所有这些都起作用。
>>使用包含此内置的PayPal IPN侦听器客户端。我最近向此提交了一个补丁,它的工作方式就像魅力。
>首先检查IPN消息的数据格式和编码。确保与PayPal提供的规格匹配。另外,将交易详细信息与您的PayPal帐户交叉验证。如果问题持续存在,请考虑使用PayPal提供的IPN模拟器工具进行测试。
>>我如何使用IPN模拟器测试我的侦听器?
>如果我的侦听器未接收IPN消息,该怎么办?
我如何确保我的IPN交易的安全?
>在IPN?
中,“ cmd = _notify-valative”命令的作用是什么?使用“ CMD = _Notify-validate”命令来验证IPN消息。当您使用此命令将IPN消息发送回PayPal时,如果消息是真实的,则贝宝会以“验证”或“无效”响应。 ? PayPal可以在付款更新或重新验证的情况下为同一交易发送多个IPN消息。您应该设计侦听器来处理这些重复的消息并防止对交易进行任何双重处理。>
>如何在Node.js?以上是快速提示:PayPal IPN的解决方案总是返回'无效”的详细内容。更多信息请关注PHP中文网其他相关文章!