Webhooks

Уведомления о событиях с картами по протоколу http(s)

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

Когда происходит событие с картой, система отправляет POST запрос с телом в JSON на указанный URL. Отправка вебхука повторяется через 1-2 часа и через 24 часа. Система не ждет и не обрабатывает ответ по URL.

Возможно предусмотреть запись идентификаторов обработанных вебхуков, чтобы не обрабатывать повторные запросы.

Настройка

Настройка вебхуков производится в разделе интеграций с CRM.

  1. В качестве URL необходимо ввести адрес на который будут отправляться уведомления

  2. Необходимо выбрать события, о которых вы хотите получать уведомления

События

  1. Создание карты - происходит, когда в системе создается карта

  2. Обновление карты - происходит, когда карта обновляется

  3. Удаление карты - происходит, когда карту удаляют

  4. Установка карты на устройство - происходит, когда клиент устанавливает карту в приложение Apple Wallet или Google Pay

  5. Удаление карты с устройства - происходит, когда клиент удаляет карту в приложении Apple Wallet или Google Pay

Обработка вебхука

Вебхук отправляется POST запросом по введенному URL в формате JSON. Для обработки вебхука необходимо обрабатывать входящие POST запросы формата JSON.

Пример обработки вебхука

PHP
PHP
if (!empty(file_get_contents('php://input'))) {
$webhook = json_decode(file_get_contents('php://input'), true);
}

В переменной $webhook будет содержаться массив с данными

Отправляемые данные

Вебхук состоит из следующих полей:

  • webhookId - строка, идентификатор вебхука.

  • event - строка, тип события (createCard, updateCard, deleteCard, installCard, unInstallCard)

  • card - массив, данные по карте. В таком же формате как возвращает запрос на получение информации о карте.

Пример отправляемых данных

{
"card": {
"cardId": "5e451571cea6c6141807b792",
"cardCode": "000000018",
"cardUrl": "testUrl",
"appleUrl": "testUrl",
"googleUrl": "testUrl",
"qrcodeUrl": "testUrl",
"values": {
"%POINTS%": "1000"
},
"deviceRegistered": false,
"expirationDate": "",
"voided": 0,
"phoneNumber": "",
"email": "",
"strip": "",
"logo": "",
"icon": "",
"templateId": "5e424c181dbf0d537c8b4569",
"importUid": "",
"installedGPay": 0,
"installedAW": 0,
"installed": false,
"created": "13.02.2020 12:22:57",
"updated": "13.02.2020 12:22:57"
},
"event": "createCard",
"webhookId": "5e4515b1cea6c61fba2a4212"
}