【问题标题】:Symfony 2.7, PayumBundle, PaypalSymfony 2.7、PayumBundle、贝宝
【发布时间】:2017-01-29 18:23:03
【问题描述】:

在使用 stackoverflow 解决我的问题近两年后,这是我第一次没有找到解决方案,所以我的第一篇文章。

我目前正在实习,我必须为在 symfony 2.7 上运行的项目实施 paypal 付款。

我选择 payumBundle(在我看来它是最新的捆绑包)。

在贝宝的沙盒中工作正常,但是当我想使用实时凭据进行测试时,它崩溃了。

我的 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%"

当我使用沙盒参数进行测试时(使用我的个人帐户,它正在工作)。 我的问题是,当我想“直播”时,它不再起作用了。 我可以访问贝宝上的企业帐户,因此我拥有 api 的凭据(用户名、密码、签名),并且我将沙箱设置为 false(不这样做是正确的想法?)。但后来我在付款/捕获时收到“cURL 错误 51:SSL:证书验证失败(结果:5)”。

我已经搜索了很长时间,但没有找到任何可行的解决方案。 我不得不承认我不确定这是捆绑包的问题还是我的任何环境问题(Mac El Capitan,Liip 的 PHP 5.6.23,curl 7.47.1,这不是我创建编码环境)显然是 php安装了http://php-osx.liip.ch/,所以 openssl 和 curl 在里面,我不知道如何更新它们(curl、openssl、libs)。有链接吗?

例如,当我尝试 brew upgrade curl 时,表示 curl 未安装 curl 可在终端中访问

提前感谢您的帮助。

【问题讨论】:

标签: php symfony curl paypal


【解决方案1】:

你使用 Guzzle6,它让我想起了 similar problem 我在 curl 和 guzzle 中的认证。 The answer 适用于 Windows,但 cmets 表示它适用于 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");

【讨论】:

    猜你喜欢
    • 2011-07-25
    • 2011-02-21
    • 2015-04-05
    • 2014-09-06
    • 1970-01-01
    • 2020-11-08
    • 2020-01-31
    • 2013-04-19
    • 2011-07-17
    相关资源
    最近更新 更多