很多个月以来,我的OAuth2例程一直运行良好。 OAuth2例程创建新的令牌,以便我可以执行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>
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
好的,我在连接到新的PayPal REST API时遇到了同样的问题,错误背后的原因是从Verisign G2 Root证书(PayPal不再支持)迁移到SHA-256算法和Verisign G5签署证书。
令人困惑的是,Coldfusion 10和Coldfusion 11已经在ColdFusion Truststore中拥有了cacerts,那为什么它仍然不起作用?
经过几个小时的尝试和搜索,我发现证书问题出在JRE文件夹中,而不是ColdFusion。这很快促使我升级ColdFusion以在最新版本的Java JDK 1.8_101上运行(我的测试服务器在JVM 1.7上运行,生产服务器在1.8_25上运行(所以我升级了两个并运行了代码(类似于Charles)原帖子中的代码。)
所以这里有一些简单的步骤:
PayPal oAuth2.0将再次运作! (至少它对我有用)。我希望这可以帮助别人节省数小时的挫折感,并确保最新的PayPal REST API与ColdFusion一起使用(即使他们没有提供示例 - 我正在努力通过Github将其提交给PayPal)。
答案 1 :(得分:0)
只是为了让每个人都知道,一旦我安装了CF11,PayPal令牌就没有问题了。显然,CF11 cacerts和安全提供商是兼容的。现在,我必须尝试整理Railo,这可能会更困难,因为我在Railo 4上。我会尝试将Railo更新到最新的4+版本......
更新
要使这个在Railo上运行,你需要彻底安装Lucee 4.5 [Railo 4.2后继者]。不要通过移动.JAR来更新从RAILO到LUCEE。我再说一遍,你需要彻底安装Lucee 4.5:
http://lucee.org/downloads.html
然后我遇到了BonCode适配器的问题。 如果从IIS中收到以下错误:
IIS处理程序“BonCode-Tomcat-CFM-Handler”有一个错误的模块
检查IIS应用程序池。在“应用程序池”中,单击右侧面板上的“基本设置”。如果.NET版本为2.0.0,则将其更改为4.X并保存更改。
提示:
确保您的web.config文件具有以下设置以查看此错误:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed"/>
</system.webServer>
</configuration>
这可以节省你一周的工作:)
祝你好运!