API

Материал из PODS Wiki
Перейти к: навигация, поиск

API создания/изменения заказа

Для изменения заказа необходимо сделать POST-запрос по адресу:

Параметры запроса (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 получения списка проектов пользователя

Для получения делается запрос по адресу

Результат вовзвращается в виде 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-запрос по адресу:

Параметры запроса:

  • project_id - ID проекта
  • project_new_name - новое название проекта (для удаления не нужно)
  • token - контрольная сумма

значение token вычисляется как MD5 от конкатенации секретного ключа и всех параметров запроса

  • md5( project_id + project_new_name + sekret) - для переименования
  • md5( project_id + sekret) - для удаления

Ответ:

  • OK - при успехе

либо

  • error - сообщение об ошибке (если есть)


API получения статуса выгрузки заказа

Параметры запроса:

  • order_id - ID заказа
  • token - контрольная сумма, считается как md5 от конкатенации order_id и секретного ключа

Результат вовзвращается в виде JSON, содержащего:

  • error - сообщение об ошибке при запросе (если оно есть)

либо

  • status - статус заказа:
    • 0 - не было выгрузки
    • 1 - идёт выгрузка
    • 2 - ошибка
    • 3 - выгружено
    • 4 - отменено