0

几个月来,我的 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>

谁能帮我解决这个问题?

4

2 回答 2

2

好的,我在连接到新的 PayPal REST API 时遇到了完全相同的问题,错误背后的原因是从 Verisign G2 根证书(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 管理员的最新更新
  2. 安装最新的 Java JDK(当前为 1.8_101)并记住安装位置
  3. 返回ColdFusion Administrator 并转到Server Settings 下的Java 和JVM,并将JVM 指向新JDK 中的JRE 文件夹,例如/{JDK_home}/Contents/Home/jre 文件夹,然后重新启动ColdFusion。

PayPal oAuth2.0 将再次起作用!(至少它对我有用)。我希望这可以帮助某人节省数小时的挫败感,并确保最新的 PayPal REST API 确实可以与 ColdFusion 一起使用(即使他们没有提供示例 - 我正在努力通过 Github 尽快将其提交给 PayPal)。

于 2016-09-30T01:42:18.827 回答
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>

这应该可以为您节省一周的工作时间:)

祝大家好运!

于 2016-02-03T17:55:17.737 回答