Для интеграции с другими сервисами и приложениями рекомендуем настроить интеграцию через Zapier.
Вы сможете передавать данные между сервисами без помощи программистов.
Вы можете изменять статус заказа, передавать дату отправки, оплаты и номер почтового отправления.
Запрос передаётся методом POST в формате URLencode на адрес: https://username.expertam.ru/api/UpdateOrderStatus
Параметры передаваемые в запросе
- bill_id — номер заказа;
 - status — статус заказа (sent — заказ отправлен по почте, paid — поступила оплата по заказу, return — покупатель вернул заказ, cancel — заказ отменен);
 - date — время отправки заказа по почте или оплаты, в секундах от 1 января 1970 года, т.н. UNIX timestamp (обязательно для статусов sent и paid);
 - rpo — номер почтового отправления (обязательно для статуса sent);
 
Как работает
Вы передаете номер, статус заказа и дополнительные данные, а система изменяет статус заказа и записывает указанные параметры в заказ.
В ответ на запрос ваша система получит результат выполнения функции в формате JSON. Подробнее смотрите Ответы API сервиса.
Пример на PHP изменения статуса заказа
В примере изменяем статус заказа 100000 на «отправлен». Номер РПО: 10000000000000, дата отправки — 3 марта 2013 00:00, что соответствует timestamp 1362254400.
Функция GetHash — формирует подпись к передаваемым данным.
Функция CheckHash — проверяет подпись к ответу сервиса.
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62  | 
						<?php   // Логин в системе Expertam   $user_rs['user_id'] = 'username';   // Ключ для формирования подписи. см. "API" (справа внизу личного кабинета Expertam)=> "Ключ API"   $user_rs['user_rps_key'] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';   // Формируем массив данных для передачи в API   $send_data = array(     'bill_id' => '100000',     'status' => 'sent',     'date' => '1362254400',     'rpo' => '10000000000000',    );   // Формируем подпись к передаваемым данным   $send_data['hash'] = GetHash($send_data, $user_rs);   // Вызываем функцию UpdateOrderStatus в API и декодируем полученные данные   $resp = json_decode(Send('https://username.expertam.ru/api/UpdateOrderStatus', $send_data));   // Проверяем ответ сервиса   if(!CheckHash($resp, $user_rs)){     echo "Ошибка! Подпись к ответу не верна!";     exit;   }   if($resp->error_code == 0)     echo "Статус заказа изменен. Ответ сервиса: {$resp->error_code}";   else     echo "Ошибка код:{$resp->error_code} - описание: {$resp->error_text}"; // =========== ФУНКЦИИ ОТПРАВКИ, ПОЛУЧЕНИЯ И ОБРАБОТКИ ОТВЕТА ============   // Отправляем запрос в API сервиса   function Send($url, $data){     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_POST, true);     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // выводим ответ в переменную     $res = curl_exec($ch);     curl_close($ch);     return $res;   }   // Формируем подпись к передаваемым в API данным   function GetHash($params, $user_rs) {     $params = http_build_query($params);     $user_id = $user_rs['user_id'];     $secret = $user_rs['user_rps_key'];     $params = "$params::$user_id::$secret";     return md5($params);   }   // Проверяем полученную подпись к ответу   function CheckHash($resp, $user_rs) {     $secret = $user_rs['user_rps_key'];     $code = $resp->error_code;     $text = $resp->error_text;     $hash = md5("$code::$text::$secret");     if($hash == $resp->hash)       return true; // подпись верна     else       return false; // подпись не верна   } ?>  | 
					
