Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Интеграция стороннего API


Recommended Posts

Добрый день. Очень прошу помощи по интеграции стороннего 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 раз только отправлялся счёт, а также условие при котором заказ отменяется, наверняка надо и счёт удалять.

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.