Перейти к содержимому

Как получать уведомления о поступлении денег в Stripe (+рефанды, ошибки платежа)

Как получать уведомления о приходе денег в Stripe

Обновлено: 10.02.2021

В предыдущей статье я рассказывал, как выставлять инвойсы в Stripe. В этой статье опишу, как получать уведомления о приходе денег, совершенных возвратов (refund), или ошибках платежа.

Получение уведомления о приходе денег

Вот как выглядит сценарий целиком:

Как получать уведомления о приходе денег в Stripe
Как получать уведомления о приходе денег в Stripe

Первым делом создаем сценарий и добавляем модуль Stripe -> Watch Events. Добавляем новый вебхук, указываем свой аккаунт и группу вебхука.

Создание вебхука Stripe
Создание вебхука Stripe

Выбираем группу Charge, и дальше конкретный ивент Charge succeeded. Сохраняем. После этого в ЛК Stripe автоматически создастся вебхук с соответствующим ивентом. Рекомендую проверить это в личном кабинете. Заходим в ЛК и идем в Developers -> Webhooks.

Созданные вебхуки в Stripe
Созданные вебхуки в Stripe

Нажав на каждый из вебхуков, можно увидеть его ивенты и при необходимости, отредактировать их (добавить/удалить). Там очень много разных ивентов и можно придумать сценарий на свой вкус.

Дальше, по умолчанию в модуль Stripe -> Watch Events приходит инфа без комиссии Stripe, а было бы очень удобно сразу видеть сумму Gross, комиссию и Net (сумму за вычетом комиссии).

Для этого создаем модуль Stripe -> Retrieve a Balance Transaction. В нем вставляем переменную с объектом транзакции из первого модуля.

Получаем развернутую инфу по платежу с комиссией Stripe
Получаем развернутую инфу по платежу с комиссией Stripe

В результате мы получим и сумму, которую получил клиент, и сумму комиссии. Не забываем, что в Stripe все суммы указаны в центах, поэтому надо делить на 100.

В принципе это все. Дальше, по аналогии с оплатами в Paypal можно:

  • Записывать все оплаты в отдельный файл
Задание переменных из Трелло и записывание в Google Sheets
Задание переменных из Трелло и записывание в Google Sheets
  • Суммировать все оплаты в одной ячейке
  • Постить оплату в карточке Трелло, менять её статус, двигать в другой столбец и др.
  • Отправлять сообщение в Телеграм
  • Отправлять письмо клиенту.
  • И многое другое.

В данной схеме есть трудность с определением по какой карточке была оплата, для этого я в этой статье описывал, что еще при создании инвойса, нужно записывать ID клиента Stripe в строку, которая соответствует вашему заказу в Google Sheets. В этой строке также должен быть записан ID карточки Трелло.

Тогда, после оплаты в Stripe, можно искать строку с нужным ID клиента (который отдает модуль Stripe -> Watch Events) и в этой строке брать столбец с ID карточки трелло. Поиск осуществляется модулем Google Sheets -> Search Rows.

А дальше просто переменную с ID карточки Trello вставляете в модуль Trello -> Get a Card.

Получение уведомления о возврате (refund)

Для данной схемы нужно будет создать новый сценарий. Берем тот же модуль Stripe -> Watch Events, выбираем группу Charge и ивент Charge refunded.

Проверяем в ЛК Stripe, что вебхук создался правильно и с нужным ивентом.

Сразу после первого модуля можем искать в Google Sheets нужную карточку Трелло, ну а дальше как обычно, раскидываем инфу туда, где нужно.

Вот как может выглядеть сообщение о рефанде в Telegram:

 

Настройка уведомления в Телеграм
Настройка уведомления в Телеграм

 

Уведомление в Телеграм о возврате
Уведомление в Телеграм о возврате

Ну а вот так выглядит весь сценарий:

Сцегарий с уведомлением о возврате денег Stripe
Сцегарий с уведомлением о возврате денег Stripe

Получание уведомления об ошибке платежа

Здесь все совсем просто: создаем новый сценарий. Берем тот же модуль Stripe -> Watch Events, выбираем группу Charge и ивент Charge failed.

Дальше при срабатывании модуля текст ошибки будет показан в переменных object.failure_code и object.failure_message.

 

Уведомление об ошибке платежа Stripe
Уведомление об ошибке платежа Stripe
Пример срабатывания уведомления
Пример срабатывания уведомления

Собственно, вот и все. Такая схема отлично работает. Если есть вопросы — задавайте в комментариях.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *