除了cUrl之外,还需要使用Big Commerce API吗?

时间:2013-02-12 06:07:45

标签: api bigcommerce

您好我已经编写以下代码以使用bigcommerce API。但它似乎有一些服务器问题。我的服务器是PHP> 5.3& curl已启用,但API似乎没有返回任何响应。任何人都可以帮我解决这个问题吗?

这是我的代码

    $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL, 'https://store-bwvr466.mybigcommerce.com/api/v2'); 
    curl_setopt($ch, CURLOPT_USERPWD, 'demo'.':'.'df38dd10e9665a3cfa667817d78ec91ee9384bc3');
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); 

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));

    $result = curl_exec($ch); 

    curl_close($ch);

 echo "<textarea>".$result."</textarea>";

 phpinfo();

您可以将其检入我的实时服务器http://fuzonmedia.com/big/server_test.php

谢谢

2 个答案:

答案 0 :(得分:0)

所有对Bigcommerce API的请求都需要使用SSL_RSA_WITH_RC4_128_SHA密码进行加密。 API的大多数初始问题都是由于在发送请求时没有告诉cURL使用正确的密码。由于您的系统使用NSS库来处理加密,您可以通过以下代码行告诉cURL使用哪个密码。

    curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'rsa_rc4_128_sha');

如果这不能解决您的问题,您需要检查cURL是否返回任何错误。您可以通过修改代码来执行此操作,如下所示。

    $result = curl_exec($ch); 
    if ($result === false) {
        echo '<textarea>'.curl_error($ch).'</textarea>'; 
    } else {
        echo "<textarea>".$result."</textarea>";
    }
    curl_close($ch);

输出错误消息可能会为您提供更多有关出错的线索。您还可以通过启用详细选项获取更多信息。请注意,此信息会输出到 STDERR ,因此除非您重定向 STDERR ,否则您将无法在网页上看到该信息到 STDOUT ,即浏览器窗口。

    // Switch on verbose information and display it on the web page.
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'w+'));

希望以上有所帮助。

亲切的问候,
大卫

答案 1 :(得分:0)

从上一个答案开始 - 您还可以使用Bigcommerce PHP库(https://github.com/bigcommerce/bigcommerce-api-php),它提供了一种使用PHP与API交互的更简单方法。您可以访问像

这样的产品
require 'vendor/autoload.php';
use Bigcommerce\Api\Client as Bigcommerce;
$products = Bigcommerce::getProducts();

    foreach($products as $product) {
        echo $product->name;
        echo $product->price;
    }

关于David关于密码的答案,您需要将其设置为rsa_rc4_128_sha,类似于以下内容。希望这会有所帮助。 -

Bigcommerce::configure(array(
'store_url' => 'https://store-xxx.mybigcommerce.com',
'username' => 'admin',
'api_key' => 'xxxxxx'
));
Bigcommerce_Api::setCipher('rsa_rc4_128_sha')
Bigcommerce_Api::verifyPeer(false);