几天之后,当有人在我们的onlineshop上使用paypal付款时,我们总是从paypal收到此电子邮件:
Please check your server that handles PayPal Instant Payment
Notifications (IPN). IPNs sent to the following URL(s) are failing:
[OUR_SHOP_URL]/commerce_paypal/ipn/paypal_wps%7Ccommerce_paymen
t_paypal_wps
If you do not recognize this URL, you may be using a service provider
that is using IPN on your behalf. Please contact your service provider
with the above information. If this problem continues, IPNs may be
disabled for your account.
Thank you for your prompt attention to this issue.
Sincerely,
PayPal
我们在Drupal 7上使用Drupal Commerce。“有趣”的事情是:有时会出现此错误,有时不会出现。当出现此错误时,Drupal-Commerce无法将付款状态设置为“已完成”,因此需要花费大量时间手动执行此操作...
我在这里找到了一个“解决方案”,但* .patch并未解决问题:https://www.drupal.org/node/1055390
还有其他解决方案吗? :/
修改
当看一下drupal最近的日志消息时,我可以找到被跟踪的错误。
以下是我得到的信息:
Type commerce_paypal
Date Thursday, October 9, 2014 - 13:15
User Anonymous (not verified)
Location [URL]/commerce_paypal/ipn/paypal_wps%7Ccommerce_payment_paypal_wps
Referrer
Message IPN URL accessed with no POST data submitted.
Severity warning
Hostname 173.0.81.1
Operations
编辑2:
我们发现了......我们有HTTPS。我jsut treid使用HTTP Url。而且......这很好用。但我们想要的是HTTPS而不是HTTP。但也许它会帮助你在这里发生什么?
答案 0 :(得分:1)
这似乎是Paypal本身的问题 - 用户注意到有时Paypal回调被编码,因此管道字符(“|”)被编码为“%7C”。该用户已经描述了您的问题 - 调试此问题非常困难,因为它有时只会发生。
以下是该问题的链接以及一个小补丁:
https://www.drupal.org/node/1055390#comment-7436538
这个问题发生在Paypal本身,虽然我想知道为什么这个补丁没有被包含在drupal商业本身......
答案 1 :(得分:0)
您需要检查Web服务器日志文件,以确切了解故障发生的错误。您将能够看到当错误发生时您通常会在屏幕上看到的PHP错误。
这将为您指明出现问题以及您可能需要做些什么来解决问题。
您可以做的另一件事是复制自己失败的IPN并将其直接发送到浏览器中的IPN侦听器,以便您可以在屏幕上看到结果。这有助于排除故障和调试。只需创建一个HTML表单,并将操作设置为您的IPN URL,然后添加一组隐藏字段,这些字段与您失败的订单中的名称/值相匹配。这会触发相同的错误,所以你可以看到它。