卷曲错误:60卖家中心SDK

时间:2016-07-19 08:15:56

标签: php curl sdk guzzle

我在使用此网站上的Seller Center SDK时遇到问题:

https://github.com/rocket-internet-berlin/SellerCenterSDK-PHP

我完全像他说的那样。当我到了测试它的时候

private void sendMsg2() throws SkypeException {
        Skype.chat("skype_ID").send("Sending test message ...");
    }

private void sendMsg(Friend[] friends) throws SkypeException {
        for (Friend akt : friends) {
            if (akt.getId().equals("friend's skype ID")) {
                akt.send("Test message 2");
                System.out.println("Sending test message 2...");
            }
        }
    }

我收到错误说:

php ./genericGetter.php

我试图关闭防火墙,并将curl error 60: ssl certificate problem: unable to get local issuer certificate 从此网站https://curl.haxx.se/ca/cacert.pem添加到我的cacert.pem,但仍然没有运气。有人可以提供解决方案吗?

3 个答案:

答案 0 :(得分:0)

您可以尝试将其添加到php.ini

curl.cainfo=c:\path\to\cacert.pem

如果仍无效,请尝试设置opt_option。

$options = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "spider", // who am i
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
    CURLOPT_TIMEOUT        => 120,      // timeout on response
    CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    CURLOPT_SSL_VERIFYPEER => false     // Disabled SSL Cert checks
);
curl_setopt_array( $ch, $options );

答案 1 :(得分:0)

刚想通了。

vendor\guzzlehttp\guzzle\src\HandlerCurlFactory.php内的line 329内;改变;

$conf[CURLOPT_SSL_VERIFYPEER] = true;

$conf[CURLOPT_SSL_VERIFYPEER] = false;
到目前为止,我还不知道可能发生的副作用。但是,它现在确实可以正常工作。

希望这对那些想要使用Seller Center SDK的人有用。

答案 2 :(得分:0)

如果您可以相信来源正在消耗资源,那么可以说我可以像您已经做的那样暂时停用该选项,但是我建议您检查问题的根源以寻求长期解决方案

似乎问题在于curl没有有效的证书:

  • 检查服务器是否具有最新的cacert.pem文件,您可以从https://curl.haxx.se/docs/caextract.html下载该文件并将其添加到服务器certs目录中。
  • 如果服务器使用由cacert表示的CA签名的证书,则该证书可能已过期,或者名称可能与您的SDK使用的域名不匹配。

如果您仍然没有解决方案,请查看下面的链接,以查看提供的选项之一是否可以为您提供解决方案: curl: (60) SSL certificate : unable to get local issuer certificate