快速摘要:
我正在使用PHP开发一个电子商务网站。它使用PayPal进行付款。我已成功使用(从通过SetExpressCheckout发送请求字符串到DoExpressCheckoutPayment到GetExpressCheckoutDetails以在MySQL数据库中存储付款细节)PayPal的Sandbox模式及其经典API快速结账(NVP)从去年年底到现在。直到昨晚一切正常,并且没有对网站的PayPal部分进行重大更改。现在,我在每次付款请求时都会在https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[TOKEN]收到“内部服务器错误”。
操作实例:
我看到的内容:
Paypal SetExpressCheckout返回:
Array
(
[TOKEN] => XX-XXXXXXXXXXXXXXXXX
[TIMESTAMP] => 2015-03-28T20:27:25Z
[CORRELATIONID] => XXXXXXXXXXXXX
[ACK] => Success
[VERSION] => 109.0
[BUILD] => 15840636
)
上面列出的链接上的PayPal Sandbox错误消息:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@paypal.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
为什么我找不到答案:
答案 0 :(得分:2)
内部服务器错误意味着PayPal服务器内部。这是PayPal的“帮助!我放弃了!”错误信息。
这并不排除有可能出现错误,导致PayPal的代码偏离绿色路径并进入被熊吃掉的树林中,但无论如何:按照错误页面说明并联系PayPal支持。他们应该能够查找您的相关ID并查看发生的情况。然后,他们可以让您知道您是否可以通过更改结果或者您的代码是否全部好并且100%是他们的问题来解决问题。然后他们可以改进他们的代码,以便下一个可能与您的错误相似的人得到更好的反馈。
(虽然如果这样的页面通常显示给您的客户,而不是您,PayPal通常只提供相对一般的失败消息。)
还有一些其他的事情我会检查你是否想要在等待PayPal回复你的时候再多做一点:你确认API似乎实际上正如它声称的那样工作。要检查的明智之举,但错误是在网络重定向上,所以请关注:如果你传递一个已知伪造的令牌,你会得到什么?在另一台计算机上或清除cookie后会发生什么?如果您尝试使用同一对账户进行按钮付款(不是快速结账),您会得到什么?
答案 1 :(得分:2)
通过向PayPal发送日志报告此问题后,他们通过确认这是一个已知问题作出回应。
亲爱的菲利普,
感谢您与PayPal商户技术服务部联系 沙箱环境中的内部服务器错误。这是众所周知的 目前正在调查的问题,并希望将是 很快解决了。当我确认问题时,我会通知您 是固定的。谢谢。
此致
麦克
商家技术支持
PayPal,eBay公司
从PayPal更新:
亲爱的菲利普,沙盒问题现在应该得到解决,你应该这样做 没有看到内部服务器500错误。如果你有任何其他的 问题,请告诉我们,https://www.paypal.com/mts
此致
麦克
商家技术支持
PayPal,eBay公司
我已经过测试,看起来似乎已修复。