Примеры webhook-оповещений
Генерация подписи
Для секретного ключа = "secret_key" и оповещения:
content-type: "application/json"
signature: "e970dee7309c7793d2ef33e991c9603487a35eaa26c1f159a2fdad1c049671ffc4b8e887e2eb52c2cdbfc495ec528130d25575a0ecff386aad8096e20094003c"
{
"event": "order.created",
"event_date": "2021-08-13T09:16:35+03:00",
"order_id": 5555555,
"order_name": "A0005555555",
"status": "not paid",
"external_id": "TEST12025",
"create_date": "2021-08-13T09:16:35+03:00",
"pay_date": "",
"currency": "RUB",
"locale": "ru_RU",
"recurring_indicator": false,
"order_detail_url": "https://shop.checkout.softline.ru/order/status/5555555/1a97507",
"customer": {
"country": "RU",
"type": "physical",
"email": "customer@mail.ru",
"first_name": "Иван",
"last_name": "Петров",
"phone": "",
"vat_number": "",
"company_name": "",
"company_billing_address": "",
"company_delivery_address": ""
},
"product": {
"id": "111111",
"vendor_code": "0001",
"sku": "0001",
"business_segment": "b2c",
"name": "Demo",
"price": "100.00",
"quantity": 1,
"discount_percent": "",
"discount_amount": "",
"vat_amount": "0.00",
"amount": "100.00",
"margin": "90.00"
},
"payment": {
"payment_method": "CreditCard",
"payment_system_name": "Bank Card",
"card_type": "",
"card_last_4": null,
"card_expiration_date": "",
"is_card_expired": false,
"is_installment_payment": false
},
"document_part": "1-of-1"
}
- Выполните конкатенацию секретного ключа и значений параметров из тела запроса по шаблону:
[secret key];[event];[order_id];[create_date];[payment_method];[currency];[customer.email]
Результат:
secret_key;order.created;5555555;2021-08-13T09:16:35+03:00;CreditCard;RUB;customer@mail.ru
- Примените SHA-512 hash-функцию к полученной строке.
Результат:
e970dee7309c7793d2ef33e991c9603487a35eaa26c1f159a2fdad1c049671ffc4b8e887e2eb52c2cdbfc495ec528130d25575a0ecff386aad8096e20094003c
- Проверьте, что полученный результат совпадает с подписью в HTTP заголовке оповещения.
Заказ создан (order.created)
Пример оповещения для события создания заказа.
Обратите внимание, если создан заказ с автоматическим продлением, но покупатель его еще не оплатил, то информации о подписке не будет в оповещении. Так как подписка будет создана по факту оплаты.
Заказ успешно оплачен (order.payment.succeeded)
Пример оповещения для события успешной оплаты заказа.
Произошла ошибка при оплате заказа (order.payment.failed)
Пример оповещения для события ошибки оплаты заказа.
Обратите внимание, если создан заказ с автоматическим продлением, но и ошибка произошла при его оплате, то информации о подписке не будет в оповещении. Так как подписка будет создана по факту оплаты.
Покупателю отправлена лицензионная информация по продукту (product.delivered)
Пример оповещения для события отправки лицензионной информации. Если в заказе был только один продукт, то заказ будет выполнен и получит статус Delivered (в оповещении останется статус paid).
По заказу сделан возврат (product.returned)
Пример оповещения для события возврата.
В примере был сделан возврат лицензионной информации по продукту. При этом был выполнен полный возврат, заказ был удален, продление подписки было отменено.
Подписка отменена (subscription.cancelled)
Пример оповещения для события отмены подписки с автоматическим продлением. Обратите внимание, оповещение всегда отправляется по родительскому заказу, даже если в подписке уже были созданы заказы на продление.
Подписка восстановлена (subscription.restored)
Пример оповещения для события восстановления отмененной подписки с автоматическим продлением. Обратите внимание, оповещение всегда отправляется по родительскому заказу, даже если в подписке уже были созданы заказы на продление.