PayPal API OAuth2 I / O例外:对等方未经过身份验证

时间:2016-02-01 14:47:53

标签: api rest paypal coldfusion oauth2

很多个月以来,我的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>

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 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)原帖子中的代码。)

所以这里有一些简单的步骤:

  1. 将ColdFusion升级到ColdFusion Administrator的最新更新
  2. 安装最新的Java JDK(目前为1.8_101),并记住安装它的位置
  3. 返回ColdFusion Administrator并转到Server Settings下的Java和JVM,并将JVM指向新JDK中的JRE文件夹,例如: / {JDK_home} / Contents / Home / jre文件夹,然后重新启动ColdFusion。
  4. 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>

这可以节省你一周的工作:)

祝你好运!