Примеры 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).

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

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

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

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

Примеры оповещения, которые отправляется в случае, если покупатель:

  • При отмене подписки принял Stay Subscribed Offer вместо отмены подписки.
    Обратите внимание, если покупатель принял предложение (вебхук был отправлен), затем снова нажал на отмену подписки (когда скидка из предложения уже была применена), и не отменил подписку, то вебхук не высылается повторно.
  • После принятия Stay Subscribed Offer все же отменил подписку (и таким образом отказался от Stay Subscribed Offer).