Я использую библиотеку 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; } ?>
У меня есть выходная запись в командах curl в bigcommerce.php, и я вижу, что я действительно подключаюсь к хранилищу:
Я получаю следующую ошибку:
Warning: Invalid argument supplied for foreach() in /home/zetaphor/public_html/bigcommerce-api-php-master/coupons.php
Мои возвращенные массивы не содержат данных.
Я использую стек LAMP, используя PHP 5.3.3, cURL enabled
Я столкнулся с этой проблемой в 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);
Изменить: чтобы быть ясным, я думаю, что это ключевая вещь для сервера, чтобы проверить, что ваш сертификат действителен.