С таким API удастся работать через ZP?

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 631
Благодарностей
1 226
Баллы
113
Всем привет!

Захотелось тут немного автоматизировать работу с документами курьерской службы, посмотрел API, через параметры URL запрос не сделать, пишет про PHP, Curl и прочее, что мне неподвластно )))

Может, кто подскажет, есть вариант работать через ZP?

Формат API - http://client-shop-logistics.ru/mediawiki/index.php/Заглавная_страница

На примере теста.
Пишут про POST-запросы по адресу https://test.client-shop-logistics.ru/index.php?route=deliveries/api

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

<request>
<function>get_order_status</function>
<api_id>577888574a3e4df01867cd5ccc9f18a5</api_id>
<code>153112288705774351</code>
</request>

Доставка в кабинете такая есть, api_id от тестового кабинета подставлен.
Пытался в лоб через кубик POST-запроса - не работает ))) Возвращает: "Нет данных в переменной xml".
Кодировал XML в base64 - отдает то же.
По сути, он это отдает даже когда просто заходишь на https://test.client-shop-logistics.ru/index.php?route=deliveries/api
через браузер, или же оставляешь пустым поле данные в кубике POST-запроса.

Как думаете, через ZP вообще удастся что-нибудь сделать? Или забить и не тратить время? )))
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Там черным по белому написано
'xml='.urlencode(base64_encode($xml)))

Просто внимательно повторите запрос приведенный в качестве примера на сайте и все получится.
 
  • Спасибо
Реакции: Moonwalker

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 631
Благодарностей
1 226
Баллы
113
Просто внимательно повторите запрос приведенный в качестве примера на сайте и все получится.
Если бы я не был чайником, у меня бы не возникло вопроса ))
Плюс это пример для PHP, через ZP мы явно не с PHP работаем.

Что касается 'xml='.urlencode(base64_encode($xml)))
То, стыдно признаться, я не догоняю, что с этим делать. Судя по всему, нужно xml-запрос
кодировать и подставлять в этот кусок, но вместо чего? И потом этот кусок вставлять в поле "Данные" в кубике POST-запроса?
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
  • Спасибо
Реакции: Moonwalker

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
1. Кодируем XML в Base64.
2. Кодируем результат из п.1 в urlencode.
3. Отправляем.

В примере, UA - "Opera 10".
В общем, будьте внимательны и все получится.
 
  • Спасибо
Реакции: Moonwalker

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 631
Благодарностей
1 226
Баллы
113
Так, вроде куда-то сдвинулось, правда, теперь ответ получаю:
"Ошибка в структуре xml или не правильно закодированно. декадированно: <request��[��[ۏ��]�ܙ\���]\�ٝ[��[ۏ��\W�YSss���SsF6SFFc�cv6CV663�c�S�����C��6�FS�S3##��sSssC3S��6�FP(�ɕ�Օ���"

Буду копаться дальше.

Urlencode, насколько я понимаю, делается автоматом через Тип данных - Urlencoded в кубике?
И заодно. А в ZP есть встроенная возможность или сниппет какой для base64 кодирования?
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Так, вроде куда-то сдвинулось, правда, теперь ответ получаю:
"Ошибка в структуре xml или не правильно закодированно. декадированно: <request��[��[ۏ��]�ܙ\���]\�ٝ[��[ۏ��\W�YSss���SsF6SFFc�cv6CV663�c�S�����C��6�FS�S3##��sSssC3S��6�FP(�ɕ�Օ���"

Буду копаться дальше.

Urlencode, насколько я понимаю, делается автоматом через Тип данных - Urlencoded в кубике?
И заодно. А в ZP есть встроенная возможность или сниппет какой для base64 кодирования?
Вроде как нужно енкодить, а тип данных указывается для реципиента.
Доберусь до компа сделаю пример.
 
  • Спасибо
Реакции: Moonwalker

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
В демо кабинете нет заказов, поэтому, видимо, возвращает ошибку. Дока по апи довольно подробная. Думаю, разберетесь.
 

Вложения

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 631
Благодарностей
1 226
Баллы
113
В демо кабинете нет заказов, поэтому, видимо, возвращает ошибку. Дока по апи довольно подробная. Думаю, разберетесь.
Все работает. В случае тестового кабинета просто надо было к test.client-shop-logistics.ru запрос отправлять.
Поменял, получил ответ! Да, действительно urlencode не хватало. С остальным уже разберусь.
Благодарность моя не имеет границ ))
 
  • Спасибо
Реакции: orka13 и zortexx

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)