JSON API

Версия
Программный интерфейс JSON API расположен по адресу https://xp.extrapost.ru/api/v1. Адрес интерфейса содержит номер версии. Каждая версия API будет доступна по своему адресу, с указанием своего номера версии. Актуальной в настоящий момент является версия 1.
Аутентификация
Используется авторизация с помощью токена поверх HTTPS. Токен для доступа к API берётся на странице просмотра пользователя (Справочники -> Пользователи) и передаётся в поле заголовка HTTP-запроса Authorization:
curl --header 'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"' https://xp.extrapost.ru/api/v1/orders/135
 Создание заказа

curl -X POST --header 'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"' 
  --header "Content-Type: application/json" 
  -d '{"order":
         {"identifier":"1",
          "store_domain":"store.ru",
          "zip":"443099",
          "street":"ул. Ленина, д. 23, кв. 15",
          "name":"Сидоров Сергей Петрович",
          "email":"testslonmedia@gmail.com",
          "comment":"Отправляем.",
          "price":100.00,
          "prepaid": false,
          "carrier_service_type": "RussianPost:Parcel",
          "line_items":{
                    "0":{ "product_title":"Часы мужские", "price":100.00, "quantity": 1}
       }}}' 
https://xp.extrapost.ru/api/v1/orders
Пример на PHP
$json = array('order' => array(
 'identifier' => 'ab234,
 'created_at' => '2016-05-12',
 'store_domain' => 'store.ru',
 'zip' => '443100',
 'region' => 'Самарская обл.',
 'town' => 'Самара',
 'street' => 'ул. Ленина, д. 23, кв. 15',
'carrier_service_type' => 'DPD:OnlineClassic', 'name' => 'Сидоров Иван Петрович', 'email' => 'sidorov@mail.com', 'phone' => '+7 999 000 00 00', 'comment' => 'Высылайте быстрее!', 'price' => 1250.00, 'prepaid' => false, 'line_items' => array( '123' => array( 'product_barcode' => '702234332434', 'product_title' => 'Часы мужские A23', 'price' => 1250.0, 'quantity' => 1), '124' => array( 'product_sku' => 'b23442', 'price' => 1250.0, 'quantity' => 1) ))); $json_string = json_encode($json); $ch = curl_init('https://xp.extrapost.ru/api/v1/orders'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $json_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Authorization: Token token="18c5129dfa4536220678e134d43a4ce880"')); $result = curl_exec($ch); $extra_post_order = json_decode($result, true); $extra_post_order_id = $extra_post_order['id']; if ($extra_post_order_id) { // Успешно, помечаем заказ как выгруженный и сохраняем id. } else { // Ошибка. Записана в $result. }
Просмотр заказов, отправлений и товаров
Загружать списки заказов, отправлений и товаров можно запросами вида
GET https://xp.extrapost.ru/api/v1/orders?page=5&page_size=200
GET https://xp.extrapost.ru/api/v1/mailings?page=5
GET https://xp.extrapost.ru/api/v1/products?page_size=1000
Параметры page и page_size являются необязательными и служат для разбиения JSON-ответа на страницы. Размер страницы по-умолчнанию — 100. Получить отдельный документ (Заказ, Отправлений или Товар) можно с помощью запроса типа:
GET https://xp.extrapost.ru/api/v1/orders/27
GET https://xp.extrapost.ru/api/v1/mailings/27
GET https://xp.extrapost.ru/api/v1/products/27
Где 27 — идентификатор документа.  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Updating…
  • Корзина пуста.