繁体   English   中英

Bigcommerce PHP API-未返回数据

[英]Bigcommerce PHP API - No data returned

我正在使用单个文件的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)*尝试REDACTED ... *已连接*已连接到STORE_ID_REDACTED.mybigcommerce.com(已编辑)端口443(#0)*成功设置了证书验证位置:* CAfile:cacert.pem CApath:/ etc / ssl / certs *使用RC4-SHA的SSL连接*服务器证书:*主题: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证书验证正常。 *使用用户'USERNAME_REDACTED'> Basic的Basic进行服务器身份验证> GET / api / v2 / products HTTP / 1.1授权:Basic REDACTED主机:store-STORE_ID_REDACTED.mybigcommerce.com接受:application / json <HTTP / 1.1 200 OK <日期:星期二, 2013年12月3日16:32:57 GMT <服务器:Apache <最后修改时间:2013年12月3日,星期二06:25:44 +0000 <剩余X-BC-ApiLimit:17167 <剩余X-BC-Store-Version:7.6 .0 <X-Powered-By:PleskLin <传输编码:分块<Content-Type:application / json <*主机STORE_ID_REDACTED.mybigcommerce.com的连接#0保持不变*重新使用现有连接! (#0),具有主机STORE_ID_REDACTED.mybigcommerce.com *已连接到STORE_ID_REDACTED.mybigcommerce.com(已编辑)端口443(#0)*使用用户“ USERNAME_REDACTED”> Basic进行服务器身份验证> GET / api / v2 / orders HTTP / 1.1授权:基本已删除主机:已删除接受:application / json <HTTP / 1.1 200 OK <日期:2013年12月3日星期二,格林尼治标准时间<服务器:Apache <最后修改时间:2010年11月18日,星期四17:40:55 +0000 <X-BC-ApiLimit-剩余:17162 <X-BC-Store-Version:7.6.0 <X-Powered-By:PleskLin <传输编码:分块<Content-Type:application / json <*连接# 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

我在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'; 

通常在setCipher行下方还有另一行用于“验证对等方”。 尝试添加它,使其看起来像:

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

编辑:明确地说,我认为这是服务器检查您的证书有效的关键部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM