经过近两年使用stackoverflow解决我的问题后,这是我第一次找不到解决方案,所以我的第一篇文章。
我目前正在进行实习,我必须在symfony 2.7上运行的项目上实施PayPal付款。
我选择了payumBundle(在我看来它是最新的套装)。
在paypal的沙箱中工作正在运行,但是当我想使用实时凭据进行测试时,它就会崩溃。
我的composer.json为payum:
"payum/payum-bundle": "1.0.3",
"payum/payum": "1.1.4",
"payum/core": "1.3.0",
"php-http/guzzle6-adapter": "^1.0"
我的配置:
payum:
security:
token_storage: AppBundle\Entity\Announce\PaymentToken: { doctrine: orm }
storages: AppBundle\Entity\Announce\PaymentAnnounce: { doctrine: orm }
gateways:
paypal_express_checkout: paypal_express_checkout_nvp:
username: "%paypal_username%"
password: "%paypal_password%"
signature: "%paypal_signature%"
sandbox: "%payment_test%"
当我使用沙盒参数进行测试时(使用我的个人帐户,它正在运行)。 我的问题是,当我想要“现场”时它不再起作用了。 我可以在paypal上访问一个商业帐户,所以我有api的凭据(用户名,密码,签名),我把沙盒变为假(这是正确的认为不做?)。但是,我在付款/捕获时遇到了“cURL错误51:SSL:证书验证失败(结果:5)”。
我已经搜索了很长时间,但我找不到任何有效的解决方案。 我不得不承认我不确定它是捆绑的问题还是我的环境问题(Mac El Capitan,Liip的PHP 5.6.23,卷曲7.47.1,它不是我创建编码环境)显然是php安装了http://php-osx.liip.ch/,所以openssl和curl都在其中,我找不到如何更新它们(curl,openssl,libs))。你有链接吗?
例如,当我尝试brew升级curl时,可以说curl没有安装curl可以在终端中访问
提前感谢您的帮助。
答案 0 :(得分:0)
你使用Guzzle6,它让我想起了similar problem我有卷曲和认证的guzzle。 The answer适用于Windows,但评论表明它适用于OSX。
<强> 答案: 强>
您只需要将cacert.pem设置为curl.cainfo即可。
从PHP 5.3.7开始,你可以这样做:
download https://curl.haxx.se/ca/cacert.pem and save it somewhere.
update php.ini -- add curl.cainfo = "PATH_TO/cacert.pem"
否则,您需要为每个cURL资源执行以下操作:
curl_setopt ($ch, CURLOPT_CAINFO, "PATH_TO/cacert.pem");