Symfony 2.7,PayumBundle,Paypal

时间:2016-09-21 13:13:50

标签: php symfony curl paypal

经过近两年使用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可以在终端中访问

提前感谢您的帮助。

1 个答案:

答案 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");