PayPal nvp SetExpressCheckout在本地开发机

时间:2016-01-25 22:34:08

标签: php ssl curl paypal

我最近发现PayPal nvp协议正在​​/将要改变 - 需要SHA-256和Verisign G5证书。 我的托管服务器环境似乎已经具备了先决条件,因为PayPal流程在那里工作正常。

存在问题的是我的开发机器。 该机器是Windows 7,完全打补丁,默认情况下应安装SHA-256。 我已经安装了" VeriSign Class 3公共主要证书颁发机构 - G5根证书"在机器上。可能存在的一个问题是,当我使用certmgr.msc检查证书存储时,它会显示证书,但标题栏会指出[证书 - 当前用户]。我不确定如何检查证书是否适用于机器或仅适用于当前用户,或者是否重要。

当我在这台机器上运行curl -V时,我得到以下内容:

C:\Users\me>c:\soft\curl\curl -V
curl 7.33.0 (x86_64-pc-win32) libcurl/7.33.0 OpenSSL/0.9.8y zlib/1.2.8 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz

当我使用PayPal nvp端点运行以下卷曲测试时,我得到以下内容:

C:\Users\me>c:\soft\curl\curl --insecure https://api-3t.sandbox.paypal.com/nvp  -d  "USER=truncated&PWD=truncated&SIGNATURE=truncated&METHOD=SetExpressCheckout&VERSION=78
&PAYMENTREQUEST_0_PAYMENTACTION=SALE&PAYMENTREQUEST_0_AMT=19&PAYMENTREQUEST_0_CURRENCYCODE=USD&cancelUrl=http://www.example.com/cancel.html&returnUrl=http://www.example.com/success.html"
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

"警报握手失败" PayPal SSL Certificate Upgrade Microsite指出了错误消息,但我已尽力确保安装SHA-256和新的根证书。 你能指点我的下一个方向让我的开发机器恢复到PayPal的工作状态吗? 有没有办法确定机器是否满足所有要求?

1 个答案:

答案 0 :(得分:0)

这是一个PHP版本问题。我的本地机器是5.3.16版本,一旦我升级到5.6.17,一切都开始工作了。