Webhook — различия между версиями
Бутусов (обсуждение | вклад) |
Бутусов (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | == Принцип работы == | |
+ | Webhook передает данные по заказам и статусам на ваш URL. | ||
+ | Важно понимать, что на обработку очереди всех вебхуков, включая ваш, уходит время. | ||
− | + | За 1 раз наша система забирает максимум 100 ваших изменений. По нашим средним подсчетам на обработку и отправку этих данных может уйти 2 - 4 минуты. | |
+ | Также нужно понимать, что вебхуки всех клиентов обрабатываются поочередно. То есть, сначала обрабатываются заказы по вебхуку первого клиента, потом заказы по вебхуку второго клиента, потом заказы по вебхуку третьего клиента и тд. | ||
− | + | Таким образом, 100 ваших изменений вы будете получать не каждые 4 минуты, а только после того, как до вас снова дойдет ваша очередь. Это может происходить и каждые 4 минуты, если у других клиентов не было множества изменений по заказам. | |
+ | == Настройка == | ||
+ | В разделе [[Личный_кабинет_клиента#Интеграция|"Интеграции"]] создайте интеграцию с типом "Webhook". В настройках укажите URL на который мы будем отправлять вам данные. | ||
+ | == Формат данных в адрес получателя вебхука == | ||
+ | Пример запроса: | ||
+ | <source lang=xml> | ||
+ | <?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> | ||
+ | </source> | ||
+ | |||
+ | Подробное описание '''контейнера order''' вы можете увидеть на [[API#Примеры ответов 2|этой странице]] | ||
+ | |||
+ | == Формат ответа от получателя вебхука == | ||
<div style="font-size: 18px; color: #a92424; background-color: #ffdede; border: 1px solid #ebccd1; padding: 3px 10px 10px;"> | <div style="font-size: 18px; color: #a92424; background-color: #ffdede; border: 1px solid #ebccd1; padding: 3px 10px 10px;"> | ||
В случае успешной обработки вебхука, наша система ожидает от вас именно такой ответ: | В случае успешной обработки вебхука, наша система ожидает от вас именно такой ответ: |
Текущая версия на 07:16, 13 декабря 2024
Содержание
Принцип работы
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) - вебхук будет удален.