Webhook

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

Принцип работы

Webhook передает данные по заказам и статусам на ваш URL.

Важно понимать, что на обработку очереди всех вебхуков, включая ваш, уходит время.

За 1 раз наша система забирает максимум 100 ваших изменений. По нашим средним подсчетам на обработку и отправку этих данных может уйти 2 - 4 минуты.

Также нужно понимать, что вебхуки всех клиентов обрабатываются поочередно. То есть, сначала обрабатываются заказы по вебхуку первого клиента, потом заказы по вебхуку второго клиента, потом заказы по вебхуку третьего клиента и тд.

Таким образом, 100 ваших изменений вы будете получать не каждые 4 минуты, а только после того, как до вас снова дойдет ваша очередь. Это может происходить и каждые 4 минуты, если у других клиентов не было множества изменений по заказам.

Настройка

В разделе "Интеграции" создайте интеграцию с типом "Webhook". В настройках укажите URL на который мы будем отправлять вам данные.

Формат данных в адрес получателя вебхука

Пример запроса:

<?xml version="1.0"?>
<order orderno="00032011" awb="00032011" orderno2="" ordercode="0000032" givencode="">
    <barcode>00032011</barcode>
    <sender>
        <company>TEST</company>
        <date/>
        <time_min/>
        <time_max/>
    </sender>
    <receiver>
        <company>TEST2</company>
        <person/>
        <phone>+7 (495) 000-00-00</phone>
        <contacts>
            <phone>+74950000000</phone>
        </contacts>
        <inn/>
        <zipcode/>
        <date>2022-01-21</date>
        <time_min/>
        <time_max/>
        <coords lat="55.7287" lon="37.6447"/>
        <deliveryPIN/>
    </receiver>
    <pickup>NO</pickup>
    <return>YES</return>
    <weight>0.4</weight>
    <return_weight/>
    <quantity>1</quantity>
    <paytype>NO</paytype>
    <print_check>YES</print_check>
    <service>1</service>
    <return_service>1</return_service>
    <type>1</type>
    <return_type>1</return_type>
    <waittime>0</waittime>
    <price>0.00</price>
    <inshprice>0.00</inshprice>
    <enclosure/>
    <instruction/>
    <basestatus code="0"/>
    <currcoords lat="" lon="" accuracy="" RequestDateTime=""/>
    <receiverpays>NO</receiverpays>
    <acceptpartially>YES</acceptpartially>
    <status eventstore="NEW" eventtime="2022-01-20 17:08:43" createtimegmt="2022-01-20 17:08:43" message="" title="new">NEW</status>
    <statushistory>
        <status eventstore="NEW" eventtime="2022-01-20 17:08:43" createtimegmt="2022-01-20 17:08:43" message="" title="NEW" country="RU">NEW</status>
    </statushistory>
    <customstatecode>1</customstatecode>
    <clientstatecode/>
    <department/>
    <return_message/>
    <deliveredto/>
    <delivereddate/>
    <deliveredtime/>
    <outstrbarcode/>
    <arrival/>
    <costcode/>
    <receipt/>
    <items>
    </items>
    <packages>
    </packages>
    <webhook_status_code>NEW</webhook_status_code>   
</order>

Подробное описание контейнера order вы можете увидеть на этой странице

Формат ответа от получателя вебхука

В случае успешной обработки вебхука, наша система ожидает от вас именно такой ответ:

Обязательный ответ (он сообщает, что вы получили наш вебхук. Как вы будете обрабатывать эти данные и будете ли обрабатывать их вообще не имеет значения дня нашей системы):

{
    "success": true
}

Если ответ будет иной, а код ответа будет отличатся от ошибочных (5xx) - вебхук будет удален.