6

快速总结

我正在使用 PHP 开发一个电子商务网站。它使用 PayPal 进行付款。从去年年底到现在,我已经成功地使用(从通过 SetExpressCheckout 发送请求字符串到 DoExpressCheckoutPayment 到 GetExpressCheckoutDetails 到将付款详细信息存储在 MySQL 数据库中)PayPal 的沙盒模式和他们的 Classic API Express Checkout (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 沙盒错误消息:

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.

为什么我找不到答案

  • 通用的“内部服务器错误”消息意味着我不知道从哪里开始寻找,因为我不确定问题是出在我身上(这将是我的默认假设)还是出在 PayPal 上。
  • 大多数解决方案都指向生产和沙盒 URL/API 凭据之间的不匹配。这不是问题。一段时间以来,我已经成功使用 Sandbox 凭据和 Sandbox 链接。
  • 我发现的所有 PayPal 内部服务器错误问题都适用于使用 REST API(或使用 IPN)的人。我正在使用 Classic-API 驱动的 Express Checkout,但没有看到任何返回的 debug_id 或我将如何获得它。
  • 过去的所有问题都可以通过查看返回的错误信息来解决(ACK=Failure&L_ERRORCODE0=['some error code']&L_SHORTMESSAGE0=['short error message']&L_LONGMESSAGE0=['detailed error message'])。这里没有错误消息,因为它注册为成功。
  • 我尝试更改 API 凭据并获得标准安全标头错误(然后我切换回来,错误消失并返回到重定向时的内部服务器错误)。
  • 我曾尝试修改请求字符串,但我相当有信心这不是问题,因为当我故意把它搞砸时,我会收到标准错误消息。
4

2 回答 2

2

内部服务器错误意味着 PayPal 服务器内部。这是 PayPal 的“救命!我放弃!” 错误信息。

这并不排除您做错了什么导致 PayPal 的代码离开绿色路径并进入被熊吃掉的树林的可能性,但无论如何:按照错误页面上的说明操作并联系 PayPal 支持。他们应该能够查找您的相关 ID 并查看发生了什么。然后他们可以让您知道您是否可以通过最终更改来解决该问题,或者您的代码是否都很好并且这是 100% 的问题。然后他们可以改进他们的代码,以便下一个可能犯与您类似的错误的人获得更好的反馈。

(虽然对于这样的页面,通常显示给您的客户而不是您,但 PayPal 通常只给出一个相对一般的失败消息。)

还有一些其他的事情我会检查你是否想在等待 PayPal 回复你的时候多做一些工作:你验证了 AP​​I 似乎确实像它声称的那样工作。检查是明智的,但错误在于网络重定向,因此请关注:如果您传递了一个已知的虚假令牌,您会得到什么?在另一台计算机上或清除 cookie 后会发生什么?如果您尝试使用同一对帐户进行按钮付款(不是快速结帐),您会得到什么?

于 2015-03-29T13:27:45.123 回答
2

在通过日志向 PayPal 报告此问题后,他们通过确认这是他们最终的已知问题做出回应。

亲爱的菲利普,

感谢您就沙盒环境中的内部服务器错误联系 PayPal 商家技术服务。这是一个已知问题,目前正在调查中,希望很快得到解决。当我确认问题已解决时,我会通知您。谢谢你。

真挚地,

麦克风

商家技术支持

贝宝,eBay 公司

来自贝宝的更新:

亲爱的 Philip, Sandbox 问题现在应该已经解决,您应该不会看到 Internal Server 500 错误。如果您有任何其他问题,请告诉我们,https: //www.paypal.com/mts

真挚地,

麦克风

商家技术支持

贝宝,eBay 公司

我已经测试过了,它似乎是固定的。

于 2015-03-30T20:16:29.667 回答