Проблемы с сессиями API Opencart 2

1

Я пытаюсь использовать OpenCart 2 API, но я не совсем знаком с ним, и не Opencart вообще TBH.

Я создал ключ API в области администрирования, и я могу успешно связываться с API из внешнего источника, передавая имя пользователя, пароль и сам API-интерфейс, и получаю сообщение об успешном завершении.

Пример:

$url = "http://opencart.local:8888/index.php?route=api/login";
$postData = array(
        "username" => $username,
        "password" => $password,
        "key" => $key
    );

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($postData));

$response = curl_exec($handle);

$header_size = curl_getinfo($handle, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$response = substr($response, $header_size);

curl_close($handle);

$return = json_decode($response, true);

Ответ возврата следующий:

array (2) {["success"] => string (42) "Успех: сеанс API успешно запущен!" ["token"] => string (32) "rfjOIzMWobWSvKvdy2LnWsekp9v1qoQQ"}

Затем после этого я вызываю функцию cart/add в API, чтобы добавить продукт (по идентификатору) в корзину:

$url = "http://opencart.local:8888/index.php?route=api/cart/add";
$cartData = array(
        "product_id" => '47',
        "quantity" => '1'
    );

который я CURL так же, но ответ, который я получаю от OpenCart:

array (1) {["error"] => array (1) {["warning"] => string (54) "Предупреждение: у вас нет разрешения на доступ к API!" }}

Когда я проверяю проблему, кажется, что api_id, требуемый opencart для предоставления разрешения, отсутствует:

$this->session->data['api_id']

даже если это задано при входе в API. Это как-то потеряет данные сеанса, когда я делаю второй звонок, чтобы добавить товар в корзину. Помня о том, что когда это произойдет вживую, у меня не будет доступа к коду OpenCart, так как это внешний CRM, который сможет общаться только через API только с именем пользователя, паролем и ключом API.

Есть идеи? Я был бы признателен за любую помощь, поскольку я новичок в OpenCart!

спасибо

  • 0
    перейдите к: Admin CP > System > Users > User Groups > Administrator [edit] > Select all Access and Permissions and click save.
  • 0
    Я ценю, что это может быть решением для моей разработки, но в конечном итоге я не буду иметь никакого контроля над установкой OpenCart, так как я создаю стороннюю CRM, которая подключается к OpenCart, и, если возможно, я бы предпочел использовать настройки по умолчанию, так как большинству клиентов, вероятно, будет неудобно делать это.
Показать ещё 7 комментариев
Теги:
curl
session
opencart

2 ответа

0

Вам нужно передать файл для файлов cookie в вариантах завитка. Почти все аутентификации нуждаются в написании и чтении: curl_setopt ($ handle, CURLOPT_COOKIEJAR, 'cookie_file.txt');

0

У меня был подобный опыт; Я случайно удалил ключ API и создал новый, но API просто прекратил работать.

Я узнал, что $this->config->get('config_api_id'); всегда возвращает "1". Так что изменилось мое новое имя API-ключа api_id на 1 в базе данных, и оно сработало.

Я использую версию 2.1.0.1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню