直到今天,我一直在使用新的 PayPal PHP SDK 成功开发 PayPal 的沙箱,该 SDK 预先配置为使用此沙箱 URL:
https://api.sandbox.paypal.com/2.0/(Chrome
中的 URL 当前返回:“错误 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL 协议错误。”)
但是今天我的 webapp 由于 SSL 握手失败而崩溃:
Uncaught exception 'PPConnectionException' with message 'error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure' in ./paypal-sdk-1.0.92/lib/PPHttpConnection.php:185
自昨天以来(我的 web 应用程序上次工作时)发生的唯一事件是我重置了我的沙盒“卖家”帐户,根据这篇文章可能已经重置了 API 凭据。由于我已经手动更新了 API 凭据,并且已经验证它们是正确的,所以我不能说它们在这一点上是否有过错误。
经过大量搜索,我发现其他网络文章说 URL 应该是:
https://api-3t.sandbox.paypal.com/2.0/(Chrome
中的 URL 返回 SOAP 响应。)
所以我将我的 PayPal PHP SDK 包含的 URL 从https://api.sandbox.paypal.com/2.0/更改为https://api-3t.sandbox.paypal.com/2.0/并且它再次完美运行。这里发生了什么?非“3t”沙盒 URL 现在是否被破坏了?
编辑:在收到@Win 和@JoelP 的反馈后,我已通过 PayPal SDK github 提交了一份错误报告,因此 PayPal 的某人可以解释今天发生的变化,并修复 SDK 以在使用签名凭据时具有正确的 URL。
编辑 2: PayPal几天前解决了这个问题。它将在下一个版本中可用。https://github.com/paypal/SDKs/issues/22#issuecomment-8660682
感谢大家的帮助。