Перейти к содержанию

Рекомендуемые сообщения

Добрый день. Очень прошу помощи по интеграции стороннего API в Opencart. У меня имеется пример API который нужно встроить в интернет-магазин, вот кусок кода: 
POST 
https://site.ru/API/CreateBill.ashx 
Headers: 
X-Login: urlencoded(login) 
X-Password: urlencoded(password) 
Body: 
{ 
"Number": "5643", 
"Date": "2017-02-07T00:02:00.000Z", 
"WithNds": false
.....
}
Проблема в том, что я не знаю как интегрировать, что нужно создать или куда вставить имеющийся код. Подскажите пожалуйста

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если умеешь кодить, то поищи как использовать cURL.

Вот пример курла с заголовками, взят из первых результатов гугла

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/process.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);  //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = [
    'X-Apple-Tz: 0',
    'X-Apple-Store-Front: 143444,12',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding: gzip, deflate',
    'Accept-Language: en-US,en;q=0.5',
    'Cache-Control: no-cache',
    'Content-Type: application/x-www-form-urlencoded; charset=utf-8',
    'Host: www.example.com',
    'Referer: http://www.example.com/index.php', //Your referrer address
    'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0',
    'X-MicrosoftAjax: Delta=true'
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$server_output = curl_exec ($ch);

curl_close ($ch);

print  $server_output ;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 hours ago, Maximbl4m said:

Если умеешь кодить, то поищи как использовать cURL.

Вот пример курла с заголовками, взят из первых результатов гугла


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/process.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);  //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$headers = [
    'X-Apple-Tz: 0',
    'X-Apple-Store-Front: 143444,12',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding: gzip, deflate',
    'Accept-Language: en-US,en;q=0.5',
    'Cache-Control: no-cache',
    'Content-Type: application/x-www-form-urlencoded; charset=utf-8',
    'Host: www.example.com',
    'Referer: http://www.example.com/index.php', //Your referrer address
    'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0',
    'X-MicrosoftAjax: Delta=true'
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$server_output = curl_exec ($ch);

curl_close ($ch);

print  $server_output ;

 

Хорошо, спасибо большое за отзывчивость! Самый главный вопрос для меня, это в каких-то файлах это все делается или нужные свои .php создавать? (например, тот же common.php)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
30 минут назад, Mishan сказал:

это в каких-то файлах это все делается

По-хорошему в модели заказа, если это интеграция заказов, а вообще можно и в контроллере заказов в админке, либо в catalog/api/order.php либо где-нибудь в системной папке, всё зависит от конкретной задачи что нужно сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
41 minutes ago, Maximbl4m said:

По-хорошему в модели заказа, если это интеграция заказов, а вообще можно и в контроллере заказов в админке, либо в catalog/api/order.php либо где-нибудь в системной папке, всё зависит от конкретной задачи что нужно сделать.

В данном случае это отправка информации о созданных счетах. Т.е. имеется электронный бухгалтер, и туда должна отправляться информация по новым счетам из Opencart. Получается мне нужно копать в модели заказа? Вот это всё что написано в документации по этому поводу:

"Для создания счета необходимо выполнить POST запрос на адрес https://site.ru/API/create.ashx.
В теле запроса передаётся контракт в формате JSON, описывающий новый счет.
Если счет будет успешно создан, то будет получен ответ сервера со статусом 200 OK, а в теле ответа будет ID (GUID) созданного счета."

Изменено пользователем Mishan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда catalog/model/checkout/order.php, там где addOrderHistory метод. Вообще для такого лучше нанять программиста, чтобы он учитывал условие что заказ только создан или одобрен админом для обработки, но это уже другой файл тогда будет скорее всего, а также чтобы 1 раз только отправлялся счёт, а также условие при котором заказ отменяется, наверняка надо и счёт удалять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 minutes ago, Maximbl4m said:

Тогда catalog/model/checkout/order.php, там где addOrderHistory метод. Вообще для такого лучше нанять программиста, чтобы он учитывал условие что заказ только создан или одобрен админом для обработки, но это уже другой файл тогда будет скорее всего, а также чтобы 1 раз только отправлялся счёт, а также условие при котором заказ отменяется, наверняка надо и счёт удалять.

Как раз таки я сам и хотел попробовать всё сделать, набраться знаний и опыта. Спасибо большое, буду пытаться! Могу ли я Вам написать в случае возникновения вопросов? Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Mishan сказал:

Могу ли я Вам написать в случае возникновения вопросов?

Можно)

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.