Обработка уведомлений

Платежный сервис отправляет callback-уведомления провайдеру по следующим событиям: активация, отмена и продление подписки. Уведомление приходит на URL, который был указан при получении доступа к подпискам. Формат уведомления различается по типу события и набору передаваемых полей.

Формат запроса

Активация подписки

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение ACTIVATE — создание новой подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор созданной подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор платежа для оформления подписки
invoiceDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата создания счета для оформления подписки
paymentResult string
Статус оплаты. Для активации придет значение CONFIRMED — оплачен
currentPeriod string
Название первого периода подписки:
• PROMO — бесплатный период
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата окончания первого периода

Пример

{
   "smartAppId":3,
   "userId":"a4d32f...",
   "subscriptionId":111111,
   "partnerSubscriptionId":null,
   "invoiceId":"876...",
   "invoiceDate":"2021-09-10T10:20:51+03:00",
   "paymentResult":"CONFIRMED",
   "addParameters":"{\"scope\": \"\", \"token\": \"nds1D...\", \"user_id\": \"rq5l...\", \"category\": \"PURCHASE\", \"provider\": \"Provider1\", \"contentId\": \"SberdeviceLite\", \"ipAddress\": \"109.25...\", \"contentType\": \"subscription\", \"externalStoreId\": \"SberdeviceLite\"}",
   "operationType":"ACTIVATE",
   "productCode":"SberdeviceLite",
   "currentPeriod":"STANDARD",
   "endCurrentPeriodDate":"2021-10-10T10:21:15+03:00"
}

Отмена подписки

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение CLOSED — отмена подписки по инициативе пользователя
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор отменяемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата отправки уведомления
currentPeriod string
Название отмененного периода подписки:
• PROMO — бесплатный период
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Текущие дата и время отмены подписки

Успешное продление подписки

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение PROLONG — успешное продление подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор продлеваемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор счета для продления подписки
invoiceDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата создания счета для продления подписки
paymentResult string
Статус оплаты. Для продления передается значение CONFIRMED — оплачен
currentPeriod string
Следующий период подписки:
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата окончания следующего периода

Подписка не продлена

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение DECLINED — неуспешное продление подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор продлеваемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор счета для продления подписки
invoiceDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата создания счета для продления подписки
paymentResult string
Статус оплаты. Для неуспешного продления придет значение CANCELLED — оплачен
currentPeriod string
Текущий период подписки:
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – "yyyy-MM-dd'T'HH:mm:ssXXX")
Дата окончания текущего периода

Формат ответа

Ответы провайдера для следующих типов уведомлений:

  • Активация подписки
  • Отмена подписки
  • Успешное продление подписки
  • Подписка не продлена
Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение DECLINED — неуспешное продление подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
subscriptionId long
Идентификатор продлеваемой подписки
result boolean
Результат ответа.
• True – подтверждающий ответ
• False – ошибка или отказ в подтверждении
resultMessage string
Содержание ответа. Необязательное поле
code long
Код ответа.
• 200 – подтверждающий ответ
• 500 – ошибка или отказ в подтверждении
partnerSubscriptionId long
Идентификатор подписки у провайдера. Необязательное поле

Примеры

Подтверждающий ответ

{
   "smartAppId":"3",
   "subscriptionId":111111,
   "code":200,
   "partnerSubscriptionId":null,
   "operationType":"ACTIVATE",
   "result":true,
   "resultMessage":"{\n \"invoice_id\" : \"876...\",\n \"server_time\" : \"2021-09-10T10:21:15.248952+03:00\",\n \"code\" : \"Ok\",\n \"result\" : \"\"\n}"
}

Ошибка или отказ в подтверждении

{ "smartAppId": "4", 
  "subscriptionId": 589219, 
  "code": 500, 
  "partnerSubscriptionId": null, 
  "operationType": "ACTIVATE", 
  "result": false, 
  "resultMessage": "Подписка не найдена" 
 }

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней