Платежный сервис отправляет 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 Тип операции, по которой отправляется уведомление |
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": "Подписка не найдена"
}