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

Включение отправки уведомлений о платежах

Чтобы получать уведомления об изменении статуса платежей в вашем приложении, настройте, протестируйте и включите отправку через RuStore Консоль.
Если ваше приложение использует Pay SDK, также доступна отправка уведомлений о событиях подписок.

Перед включением уведомлений

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

  1. Откройте RuStore Консоль и перейдите в ваше приложение.
  2. Выберите в меню слева Монетизация > Уведомления на сервер и нажмите Подключить.
  3. Укажите URL-адрес вашего сервера, который будет принимать уведомления. Адрес должен начинаться с https://.
Пример валидного URL-адреса
https://www.notification-payment-server.my-company.ru
  1. Выберите тип уведомлений: платеж, подписка или оба варианта.
примечание

Уведомления доступны для:

  • Платежей, - BillingClient SDK или Pay SDK
  • Подписок - Pay SDK
подсказка

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

  1. Скопируйте и сохраните ключ для расшифровки уведомлений. Его необходимо добавить в механизм симметричного шифрования на вашем сервере.
img

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

В блоке Тип уведомлений может подключаться и отключаться отправка уведомлений на сервер о:

  • Статусах платежей
  • Событиях подписок

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

Перед тем, как включать отправку уведомлений протестируйте конфигурацию сервера. Для этого нажмите Проверить в строке Проверка соединения. Ваш сервер получит тестовое уведомление.

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

Ответ от сервера отобразится в RuStore Консоль. Если он отличается от Уведомление успешно доставлено, нужно проверить конфигурацию сервера и сетевую доступность между RuStore и сервером. В таблице ниже собраны возможные ответы сервера.

Ответ сервераОшибкаОписание
HTTP-код 4xx или 5xxNot Found, Unauthorized и другиеОтображаются текстовые коды ошибок согласно RFC 7231.
Превышено время запросаRead timed outНа исполнение запроса от RuStore до Backend вашего сервера есть ограничение по времени, при превышении которого появляется эта ошибка.
Лимит составляет 3 секунды, если в сокет ничего не пишется, но не более 5 секунд ожидания ответа в целом.
Соединение сброшено BE разработчикаConnection resetBackend вашего сервера сбросил соединение.
Проблемы с SSLUnsupported or unrecognized SSL messageПроблемы с SSL, проверьте сертификат сервера.
Name or service not knownУказан несуществующий адрес сервера.

Включение отправки уведомлений

Как только вы убедитесь, что сервер корректно получает уведомления и отправляет подтверждения о доставке, активируйте Уведомлять о реальных платежах. Сервис начнёт отправлять уведомления в режиме реального времени в соответствии с выбранным типом уведомлений.

Уведомления отправляются в ситуациях, когда у платежа изменяется статус.

СитуацияИзменение статуса платежа
Создан новый платёж (предположение)Статус платежа становится CREATED
Пользователь выбрал способ оплаты в приложении, платёж исполняетсяСтатус платежа появляется/меняется на EXECUTED
Пользователь отменил платёжСтатус платежа меняется на CANCELLED
Средства пользователя зарезервированы, счёт ожидает подтверждения (только для покупки потребляемых продуктов)Статус платежа меняется на PAID
Оплата прошла успешноСтатус платежа меняется на CONFIRMED
Средства по счёту возвращены покупателюСтатус платежа меняется на REFUNDED
Произошла отмена резервирования средствСтатус платежа меняется на REVERSED
Произошёл отказ при попытке оплаты (недостаточно средств, невалидный CVC и др.)Статус платежа меняется на REJECTED
Истекло время, отведённое на оплатуСтатус платежа меняется на EXPIRED
Инициирован возврат, запрос отправлен в эквайерСтатус платежа меняется на REFUNDING

Если в ответ на уведомление ваш сервер присылает ошибку, RuStore попытается отправить уведомление повторно, см. Гарантии доставки уведомлений.

Что дальше

Сразу после включения: убедитесь, что информация из payload уведомления расшифровывается корректно. Именно в ней хранятся данные о приложении, купленном продукте, а также новом и предыдущем статусах.

В дальнейшем: