API — различия между версиями
Wikiadmin (обсуждение | вклад) |
Wikiadmin (обсуждение | вклад) (→API получения списка проектов пользователя) |
||
Строка 75: | Строка 75: | ||
Для получения делается запрос по адресу | Для получения делается запрос по адресу | ||
− | * https://yourdomain.printondemandsolution.ru/api/user_projects/{ | + | * https://yourdomain.printondemandsolution.ru/api/user_projects/{user_id}?token={token} |
− | * { | + | * {user_id} - ID пользователя в PODS |
− | * {token} - контрольная сумма, считается как md5 от конкатенации { | + | * {token} - контрольная сумма, считается как md5 от конкатенации {user_id} и секретного ключа |
Результат вовзвращается в виде JSON, содержащего массив проектов со следующими полями: | Результат вовзвращается в виде JSON, содержащего массив проектов со следующими полями: |
Версия 19:15, 3 апреля 2015
Содержание
API создания/изменения заказа
Для изменения заказа необходимо сделать POST-запрос по адресу:
- https://yourdomain.printondemandsolution.ru/api/new - создание заказа
- https://yourdomain.printondemandsolution.ru/api/edit - изменение заказа
- https://yourdomain.printondemandsolution.ru/api/set_status - изменение статуса заказа (сохранено для совместимости с Avantnet)
Параметры запроса (POST DATA):
- albumix_ID (optional) - внутренний идентификатор партнёра в системе Алексея Букреева
- partner_order_ID (required) - ID заказа в системе партнёра
- status_order (optional, required если set_status) - статус заказа:
- 1 - принят (по умолчанию);
- 2 - напечатан и передан в доставку;
- 3 - доставлен
- 4 - выдан
- 9 - отменён
- count (optional) - Количество продукции, если не указано, считается = 1
- project_id (required, если new) - ID проекта в PODS
- paper_id (optioanl) - ID типа бумаги
- total_amount (optional, required если new) - Стоимость заказа
- delivery_point (optional) = 0 (на адрес клиента) 1 (на адреса самовывоза партнера-печатника)
- delivery_address (optional) адрес доставки
- send_to_print (optional) - если "1", заказ после создания отправляется в печать
- stamp (optional) - метка времени в формате Unix timesta
- token - контрольная сумма
Значение token вычисляется по разному в зависимости от типа запроса:
- для new и edit как MD5 от конкатенации секретного ключа, задаваемого в настройках WL (параметр "Секретный ключ API (входящие запросы)") и всех параметров запроса:
md5( albumix_ID + partner_order_ID + status_order + count + project_id + paper_id + total_amount + delivery_point + delivery_address + send_to_print + stamp + sekret)
- для set_status вычисляется как MD5 от конкатенации секретного ключа, задаваемого в настройках WL (параметр "Секретный ключ API (входящие запросы)"), "albumix_ID", "partner_order_ID", "status_order" и "stamp", соединённых через знак тире ("-")
Пример вычисления на PHP:
$key = 'SEKRET_KEY'; $fields = array('albumix_ID', 'partner_order_ID', 'status_order', 'stamp'); $values = array($key); foreach($fields as $field) { $values[] = $_POST[$field]; } $token = md5(implode('-', $values));
Ответ:
- При успешной обработке запроса возвращается строка
id={ID}
{ID} - номер заказа в PODS
- В случае ошибки возвращается
error={Error descriptiom}
- При использовании set_status в случае успеха возвращается строка "OK" (сохранено для совместимости с Avantnet)
Используется кодировка указанная в панели управления, в разделе Настройки - Интеграция
API отправки заказа в печать
Параметры запроса (POST DATA):
- order_id - ID заказа (наш)
- ftp-resend - "0" - отправит в печать, "1" - перезалить
- token - контрольная сумма
Вычисление контрольной суммы:
MD5 ([order_id][ftp-resend][secret])
Отправка заказа отличается от перезаливки только одим: в случае перезаливки (ftp-resend=1) не будет вызван API уведомления о выгрузке заказа.
API получения списка проектов пользователя
Для получения делается запрос по адресу
- https://yourdomain.printondemandsolution.ru/api/user_projects/{user_id}?token={token}
- {user_id} - ID пользователя в PODS
- {token} - контрольная сумма, считается как md5 от конкатенации {user_id} и секретного ключа
Результат вовзвращается в виде JSON, содержащего массив проектов со следующими полями:
- pid - ID проекта в PODS
- partner_pid - ID проекта у партнёра, если есть
- title - название проекта
- book_type = тип книги
- book_type_id = ID типа книги
- book_format = формат книги
- book_format_id = ID формата книги
- paper_type = тип листа
- paper_type_id = ID типа листа
- cover_id = ID обложки
- sheets = количество разворотов
- pic_token - token для формирования URL картинки
- created - дата и время создания, в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС
- edited - дата и время создания, в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС
API получения списка заказов пользователя
Для получения делается запрос по адресу https://yourdomain.printondemandsolution.ru/api/user_orders/{user id}?token={token}
- {user id} - ID пользователя в PODS
- {token} - контрольная сумма, считается как md5 от конкатенации {user id} и секретного ключа
Результат вовзвращается в виде JSON, содержащего массив проектов со всеми полями из проектов плюс:
- oid - номер заказа в PODS
- partner_oid - номер заказа у партнёра, если есть
- qty (integer) = количество экземпляров
- printmatic = 0 выключен, 1 включен.
- delivery_point = 0 (на адрес клиента) 1 (на адреса самовывоза партнера-печатника)
- delivery_address
- city =
- street =
- building =
- appt =
- order_time - дата и время заказа, в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС
- status - статус заказа (как в API создания/изменения заказа)
API удаления/переименования проектов
Для удаления/переименования проекта необходимо сделать POST-запрос по адресу:
- https://yourdomain.printondemandsolution.ru/api/edit_project_name - переименование проекта
- https://yourdomain.printondemandsolution.ru/api/delete_project - удаление проекта
Параметры запроса:
- project_id - ID проекта
- project_new_name - новое название проекта (для удаления не нужно)
- token - контрольная сумма
значение token вычисляется как MD5 от конкатенации секретного ключа и всех параметров запроса
- md5( project_id + project_new_name + sekret) - для переименования
- md5( project_id + sekret) - для удаления
Ответ:
- OK - при успехе
либо
- error - сообщение об ошибке (если есть)