【问题标题】:Bigcommerce PHP API - No data returnedBigcommerce PHP API - 未返回数据
【发布时间】:2013-12-04 03:11:19
【问题描述】:

我正在使用单文件 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 命令上有输出写入,我可以看到我实际上正在连接到商店:

  • 关于 connect() 到 STORE_ID_REDACTED.mybigcommerce.com 端口 443 (#0) * 正在尝试 REDACTED... * 已连接 * 已连接到 STORE_ID_REDACTED.mybigcommerce.com (REDACTED) 端口 443 (#0) * 成功设置证书验证位置:* CAfile:cacert.pem CApath:/etc/ssl/certs * 使用 RC4-SHA 的 SSL 连接 * 服务器证书:* 主题:C=US;邮政编码=49519; ST=密歇根州; L=怀俄明州;街道 = 3343 佩里大道 SW; O=已编辑; OU=即时SSL; CN=REDACTED * 开始日期:2011-08-22 00:00:00 GMT * 到期日期:2016-08-21 23:59:59 GMT * 发行人:C=GB; ST=大曼彻斯特; L=索尔福德; O=COMODO CA 有限公司; CN=COMODO High-Assurance Secure Server CA * SSL 证书验证正常。 * 服务器身份验证使用 Basic 和用户 'USERNAME_REDACTED' > GET /api/v2/products HTTP/1.1 授权:Basic REDACTED 主机:store-STORE_ID_REDACTED.mybigcommerce.com 接受:application/json GET /api/v2/orders HTTP/1.1 授权:基本已编辑主机:已编辑接受:application/json

我收到以下错误:

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

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

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

【问题讨论】:

  • 尝试做一个 $products 的 var_dump
  • @Satya - var_dump 返回 NULL。

标签: php api curl bigcommerce


【解决方案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'; 

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 我已经添加了这一行,没有任何变化。
    猜你喜欢
    • 1970-01-01
    • 2014-01-01
    • 2016-09-23
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2021-10-29
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多