服務器:Windows Server 2012中 冷聚變:9,0,1,274733 更新級別:hf901-00011.jar 運行在Java版本:1.7。 0_79 Java home指向正確的路徑。ColdFusion9:無法連接到PayPal沙盒(經典NVP)
所有證書(用於live和沙箱)都被導入到JDK 1.7.0_79的密鑰庫中。我測試過它,並在連接到實時API時重命名cacerts文件導致錯誤。
使用keytool測試cacerts文件顯示適當的證書已正確導入。
小訂單應用程序使用貝寶提供付款。
第一步是使用「setExpressCheckout」方法連接到PayPal。 使用NVP在URL https://api-3t.paypal.com/nvp上與實時API的連接工作並提供令牌URL字符串。 使用NVP在URL https://api-3t.sandbox.paypal.com/nvp沙盒API的連接失敗,出現錯誤響應:
I/O Exception: peer not authenticated
Connection Failure
Unable to determine MIME type of file.
Connection Failure. Status code unavailable.
調用從服務器作品URL https://api-3t.sandbox.paypal.com/nvp。
測試1
- 進口api-3t.sandbox.paypal.com
- 重啓CF服務
- 連接測試使用了同樣的錯誤
失敗的沙箱證書測試2
- 改名cacerts文件到cacerts.bak
- 複製從cacerts文件jre1.8.0_31 \ lib \ security中到1.7.0_79 \ lib \ security中
- 沒有在cacerts文件沒有具體的貝寶證書
- 重啓CF服務
- 連接住API的工作
- 連接到沙箱API失敗,出現相同的錯誤
奇怪的是,C在使用1.8xx cacerts文件時無需將特定證書導入密鑰庫,就可以連接到活動api工程。
我不明白爲什麼連接到沙箱失敗。也許我可以在這裏得到新的提示? 如果需要更多信息,請讓我知道。先謝謝你。
我已經收到PayPal的通知,他們將禁用TLS 1.1和更早的密碼(我認爲在2017年9月1日)。也許沙箱已經禁用了舊的密碼,並且您使用的JRE失敗,因爲它沒有使用TLS 1.2。這篇文章可能有更好的信息:https://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7 –
@Scott謝謝你。我現在在JVM啓動參數中使用-Djavax.net.debug = all查看出站會話。也許你的回答讓我朝更好的方向發展。 –
另請注意,截至2017年1月1日,PayPal Express Checkout的NVP/SOAP集成方法已棄用,這可能是沙箱不再工作的原因(我正在使用TLS 1.2並仍然無法連接) –