2013-12-04 7 views
0

Я использую библиотеку PHP одного файла. У меня есть подключение к магазину, но я не получаю никаких данных. Вот мой сценарий:Bigcommerce PHP API - Нет данных

<?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, и я могу видеть, что я на самом деле подключения к магазину:

  • О том, чтобы соединить () на STORE_ID_REDACTED.mybigcommerce.com порт 443 (# 0) * Попытка REDACTED ... * подключена * Подключена к STORE_ID_REDACTED.mybigcommerce.com (REDACTED) порт 443 (# 0) * успешно устанавливает местоположения проверки сертификатов: * CAfile: cacert. pem CApath:/etc/ssl/certs * Соединение SSL с использованием RC4-SHA * Сертификат сервера: * Тема: C = US; PostalCode = 49519; ST = Мичиган; L = Вайоминг; улица = 3343 Perry Ave SW; O = ОТРЕДАКТИРОВАНО; OU = InstantSSL; CN = REDACTED * дата начала: 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 проверяется в порядке. * Сервер auth с использованием Basic с пользователем USERNAME_REDACTED> GET/api/v2/products HTTP/1.1 Авторизация: Basic REDACTED Host: store-STORE_ID_REDACTED.mybigcommerce.com Принять: приложение/json < HTTP/1.1 200 OK < Дата: Вт, 03 Dec 2013 16:32:57 GMT < Сервер: Apache < Последнее обновление: Вт, 03 дек. 2013 06:25:44 +0000 < X-BC-ApiLimit-Осталось: 17167 < X-BC-Store-Version: 7.6 .0 < X-Powered-By: PleskLin < Transfer-Encoding: chunked < Content-Type: application/json < * Соединение # 0 для размещения STORE_ID_REDACTED.mybigcommerce.com осталось без изменений * Повторное использование существующего соединения! (# 0) с хостом STORE_ID_REDACTED.mybigcommerce.com * Подключен к STORE_ID_REDACTED.mybigcommerce.com (REDACTED) порт 443 (# 0) * Сервера auth с использованием Basic с пользователем USERNAME_REDACTED '> GET/api/v2/orders HTTP/1.1 Авторизация : Basic REDACTED Host: REDACTED Принять: application/json < HTTP/1.1 200 OK < Дата: Вт, 03 Дек 2013 16:32:58 GMT < Сервер: Apache < Последнее изменение: Чт, 18 ноя 2010 17:40:55 +0000 < X-BC-ApiLimit-Осталось: 17162 < X-BC-Store-Version: 7.6.0 < X-Powered-By: PleskLin < Передача-кодирование: chunked < Тип контента: application/json < * Connection # 0 для размещения STORE_ID_REDACTED.mybigcommerce.com оставлено без изменений * Закрытие соединения 0

я получаю следующее сообщение об ошибке:

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

Мои возвращаемые массивы не содержат никаких данных.

Я бегу стек LAMP, используя PHP 5.3.3, локон включен

+0

пытаются делать var_dump из $ продуктов – Satya

+0

@Satya - var_dump возвращает NULL. – Zetaphor

ответ

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'; 
0

Существует обычно одна линия ниже линии setCipher для «проверки пэра». Попробуйте добавить, что в таким образом, что это будет выглядеть следующим образом:

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

Edit: быть ясно, я думаю, что это ключевой элемент для сервера, чтобы проверить, что ваш сертификат действителен.

+0

Я добавил эту строку без изменений. – Zetaphor

Смежные вопросы