几个月来,我的 OAuth2 例程一直运行良好。 OAuth2 例程创建新 token ,以便我可以执行 API 操作。
突然,一周前,我开始收到以下错误:
Charset [empty string]
ErrorDetail I/O Exception: peer not authenticated
Filecontent Connection Failure
Header [empty string]
Mimetype Unable to determine MIME type of file.
Responseheader
struct [empty]
Statuscode Connection Failure. Status code unavailable.
Text YES
我正在使用 Coldfusion 10,几个月来我在测试环境中没有进行任何更改,因此更改必须来自 PayPal 的一端。
我正在使用以下 http 调用:
<cfset clientid = "***">
<cfset secret = "***">
<cfhttp method="post" url="https://api.sandbox.paypal.com/v1/oauth2/token" result="result">
<cfhttpparam type="header" name="Content_Type" value="application/json">
<cfhttpparam type="formfield" name="grant_type" value="client_credentials">
<cfhttpparam type="header" name="Authorization" value="Basic #ToBase64(clientid & ":" & secret)#">
</cfhttp>
谁能帮我解决这个问题?
最佳答案
好的,我在连接到新的 PayPal REST API 时遇到了完全相同的问题,错误背后的原因是从 Verisign G2 根证书(PayPal 不再支持)迁移到 SHA-256 算法和 Verisign G5签名证书。
令人困惑的是,Coldfusion 10 和 Coldfusion 11 已经在 ColdFusion Truststore 中拥有证书,那么为什么它仍然无法正常工作?
经过数小时的尝试和搜索,我发现证书问题出在 JRE 文件夹中,而不是 ColdFusion。这很快导致我升级 ColdFusion 以在最新版本的 Java JDK 1.8_101 上运行(我的测试服务器在 JVM 1.7 上运行,生产服务器在 1.8_25 上运行(所以我升级了两者并运行了代码(类似于 Charles原始帖子中的代码)。
简单的步骤如下:
- 将 ColdFusion 升级到 ColdFusion 管理员提供的最新更新
- 安装最新的 Java JDK(当前为 1.8_101)并记住安装位置
- 返回 ColdFusion Administrator 并转到服务器设置下的 Java 和 JVM,并将 JVM 指向新 JDK 中的 JRE 文件夹,例如/{JDK_home}/Contents/Home/jre 文件夹,然后重启 ColdFusion。
PayPal oAuth2.0 将再次运行! (至少它对我有用)。我希望这可以帮助人们减少数小时的挫败感,并确保最新的 PayPal REST API 可以与 ColdFusion 一起使用(即使他们没有提供示例 - 我正在努力通过 Github 将其提交给 PayPal)。
关于api - PayPal API OAuth2 I/O 异常 : peer not authenticated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133443/