Примеры 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 заголовке оповещения.

Пример оповещения для события создания заказа.

Обратите внимание, если создан заказ с автоматическим продлением, но покупатель его еще не оплатил, то информации о подписке не будет в оповещении. Так как подписка будет создана по факту оплаты.

Пример оповещения для события успешной оплаты заказа.

Пример оповещения для события ошибки оплаты заказа.

Обратите внимание, если создан заказ с автоматическим продлением, но и ошибка произошла при его оплате, то информации о подписке не будет в оповещении. Так как подписка будет создана по факту оплаты.

Пример оповещения для события отправки лицензионной информации. Если в заказе был только один продукт, то заказ будет выполнен и получит статус Delivered (в оповещении останется статус paid).

Пример оповещения для события возврата.

В примере был сделан возврат лицензионной информации по продукту. При этом был выполнен полный возврат, заказ был удален, продление подписки было отменено.

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

Пример оповещения для события восстановления отмененной подписки с автоматическим продлением. Обратите внимание, оповещение всегда отправляется по родительскому заказу, даже если в подписке уже были созданы заказы на продление.