Skip to Content
ПодпискиОбзор протокола

Подписки — обзор

XML API управления подписками биллинговой платформы i-Free. Все запросы отправляются методом POST на /Http/Services/{Method}.aspx — имя метода регистронезависимо.

Эндпоинтhttps://subs-sandbox.digitalspb.com/Http/Services/{Method}.aspx
Справочникhttps://i-free.money/developers/ru/sandbox
ПараметрЗначение
Content-Typetext/xml — XML-тело, либо application/x-www-form-urlencoded — те же поля form-параметрами
Корневой элементзапроса — <Request>, ответа — <Response>
ОтветXML <Response> с полем StatusName

Версия протокола: 1.0.2

Это не тот же протокол, что разовые платежи Callisto: другой адрес, другая формула подписи, другой набор методов. Общего кода между интеграциями почти нет.

Разная и модель ответственности: здесь график списаний ведёт платформа по расписанию проекта, партнёр не инициирует каждое списание. Если нужно наоборот — привязать реквизиты, а списывать по собственному расписанию, — это контракт в разовых платежах, см. Оплата с телефона (DCB).

Три способа активации

Метод создания подписки один — CreateSubscription; способ активации выбирается набором полей клиента в запросе.

СпособПоля запросаКак активируется
SMS_PINSubscriber_MSISDN (legacy-имя MSISDN тоже принимается)Абонент вводит PIN из SMS → ApproveSubscription
AUTH_PAGE — карта и СБПCustomerType=Card + CustomerIdРедирект на AuthorizeUrl из ответа; для QR-кода СБП к адресу добавляется ?useSbpQr=True. ApproveSubscription не вызывается — подписка активируется по факту оплаты
AUTH_PAGE — WAPClientIP без номера — номер определяет шлюз оператораАбонент подтверждает подписку на странице AuthorizeUrl и возвращается с параметрами результата (action=approved / cancelled / alreadyexist)

Сценарий SMS_PIN

  1. CreateSubscription — инициализация подписки для Subscriber_MSISDN. В ответе SubscriptionID и канал подтверждения; статус подписки — Pending.
  2. ApproveSubscription — подтверждение PIN-кодом из SMS.
  3. Коллбек SubscriptionStatusNotification с EventType=APPROVED — подписка активна.
  4. GetSubscriptionStatus — проверка состояния в любой момент.
  5. CancelSubscription — отмена по инициативе партнёра.

SubscriptionID из ответа CreateSubscription идентифицирует подписку во всех остальных методах — сохраните его. Повторный CreateSubscription для того же номера в границах проекта отклоняется с SubscriptionAlreadyCreated, пока прежняя подписка не отменена.

Статусы подписки

СтатусЗначение
PendingСоздана, ждёт подтверждения абонента
ActiveПодтверждена — PIN или оплатой
CancelledОтменена
ApprovingFailedПодтверждение не состоялось: исчерпаны попытки PIN либо отказ по карте
RedeliveringСписание не прошло, будет повторная попытка
RenewingFailedПопытки списания исчерпаны — подписка закрыта
ClosedВсе циклы тарификации пройдены

Тестовые данные песочницы

ПараметрЗначение
SubscriptionProjectID2001 — другое значение отклоняется с SECURITY_ERROR
SecretKeysubs_secret_key
PIN-код1234 — фиксированный, SMS песочница не отправляет. Три попытки, после третьей подписка навсегда в ApprovingFailed
Карты с ошибкойПоследние 4 цифры 0001…0005 — недостаточно средств, карта заблокирована, превышен лимит, отклонено банком, истёк срок
Номера с отказомОкончание 0001 — SubscriberNotSupported, 0002 — SubscriberInBlacklist, 0003 вместе с ClientIP — ClientIPMSISDNCountryNotEqual

Значения выше — опубликованные фикстуры песочницы, они годятся только для тестов. Боевые SubscriptionProjectID и SecretKey выдаются при подключении и не должны попадать в клиентский код или репозиторий.