Bigcommerce PHP API - 没有返回数据

时间:2013-12-04 03:11:19

标签: php api curl bigcommerce

我正在使用单个文件PHP库。我有商店连接,但我没有得到任何数据。这是我的剧本:

<?php
error_reporting(E_ALL);
ini_set('display_errors', True);
 require 'bigcommerce.php';
    use Bigcommerce\Api\Client as Bigcommerce;

    $settings = array('store_url' => 'https://STORE_URL_REDACTED.mybigcommerce.com','username' => 'USERNAME_REDACTED', 'api_key' => 'API_KEY_REDACTED');

    if( 
        (array_key_exists('store_url', (array)$settings)) &&
        (array_key_exists('username', $settings)) && 
        (array_key_exists('api_key', $settings)) 
    ) {
        // Config Basic
        Bigcommerce::configure(
            array(
                'store_url' => $settings['store_url'],
                'username'  => $settings['username'],
                'api_key'   => $settings['api_key']
            )
        );
        Bigcommerce::setCipher('RC4-SHA');
        Bigcommerce::verifyPeer(false);
    }    

$products = Bigcommerce::getProducts();

$orders = Bigcommerce::getOrders();

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

我在bigcommerce.php的curl命令上输出了输出,我可以看到我实际连接到商店:

  • 即将连接()至STORE_ID_REDACTED.mybigcommerce.com端口443(#0)*尝试删除... *已连接*已连接至STORE_ID_REDACTED.mybigcommerce.com(已删除)端口443(#0)*已成功设置证书验证位置:* CAfile:cacert.pem CApath:/ etc / ssl / certs *使用RC4-SHA的SSL连接*服务器证书:* subject:C = US; POSTALCODE = 49519; ST =密歇根; L =怀俄明; street = 3343 Perry Ave SW; O =数据被编辑; OU = InstantSSL; CN =已删除*开始日期:2011-08-22 00:00:00 GMT *到期日:2016-08-21 23:59:59 GMT *发行人:C = GB; ST =大曼彻斯特; L =索尔福德; O = COMODO CA Limited; CN = COMODO高保证安全服务器CA * SSL证书验证正常。 *使用Basic的用户'USERNAME_REDACTED'&gt;服务器身份验证GET / api / v2 / products HTTP / 1.1授权:基本删除主机:store-STORE_ID_REDACTED.mybigcommerce.com接受:application / json&lt; HTTP / 1.1 200 OK&lt;日期:2013年12月3日星期二16:32:57 GMT&lt;服务器:Apache&lt;最后修改时间:星期二,2013年12月3日06:25:44 +0000&lt; X-BC-ApiLimit-Remaining:17167&lt; X-BC-Store-Version:7.6.0&lt; X-Powered-By:PleskLin&lt; Transfer-Encoding:chunked&lt; Content-Type:application / json&lt; *连接#0主持STORE_ID_REDACTED.mybigcommerce.com保持完整*重新使用现有连接! (#0)与主机STORE_ID_REDACTED.mybigcommerce.com *连接到STORE_ID_REDACTED.mybigcommerce.com(已删除)端口443(#0)*服务器身份验证使用基本用户'USERNAME_REDACTED'&gt; GET / api / v2 / orders HTTP / 1.1授权:基本删除主机:已删除接受:application / json&lt; HTTP / 1.1 200 OK&lt;日期:2013年12月3日星期二16:32:58 GMT&lt;服务器:Apache&lt;最后修改时间:2010年11月18日星期四17:40:55 +0000&lt; X-BC-ApiLimit-Remaining:17162&lt; X-BC-Store-Version:7.6.0&lt; X-Powered-By:PleskLin&lt; Transfer-Encoding:chunked&lt; Content-Type:application / json&lt; *连接#0主机STORE_ID_REDACTED.mybigcommerce.com完好无损*关闭连接#0

我收到以下错误:

Warning: Invalid argument supplied for foreach() in /home/zetaphor/public_html/bigcommerce-api-php-master/coupons.php

我返回的数组不包含任何数据。

我正在使用PHP 5.3.3运行LAMP堆栈,启用了cURL

2 个答案:

答案 0 :(得分:1)

我在php类中遇到了这个问题,所以我用CURL做了这个, 您可以获得商店的产品,订单和优惠券。

这是代码。

    $username = 'your username'; 
    $password = 'your key';
    $url = ' your store url';
    $product_url = $url.'/api/v2/products.json';

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $product_url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $curlData = curl_exec($curl);
    curl_close($curl);
    //returning retrieved feed

    $product_rec  = json_decode($curlData);
    echo '<pre>';
    print_r($product_rec);

现在订单使用

    $order_url =  $url.'/api/v2/orders.json'; 

答案 1 :(得分:0)

setCipher行下面通常有另一行“验证peer”。尝试添加它,使其看起来像:

Bigcommerce::setCipher('RC4-SHA');
Bigcommerce::verifyPeer(false);

编辑:要清楚,我认为这是服务器检查您的证书是否有效的关键部分。