С чего начать
Сценарий интеграции
Чтобы подключить Subscriptions:
Как это работает
Покупка подписки
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant U as Пользователь
participant BE as Приложение
participant X as Xsolla
U->>BE: Входит в систему
activate BE
BE->>X: Запрашивает список планов подписки
activate X
X-->>BE: Возвращает список планов
deactivate X
BE-->>U: Отображает персонализированный каталог с примененными акциями
deactivate BE
U->>BE: Выбирает план
activate BE
BE->>X: Передает ID пользователя, ID плана и, при необходимости, ID продукта
activate X
X-->>BE: Отправляет токен для покупки
deactivate X
BE-->>U: Возвращает ссылку на оплату
deactivate BE
U->>X: Открывает платежный интерфейс
activate X
activate X
note right of X: Запрашивает проверку пользователя
deactivate X
X->>BE: Отправляет вебхук Проверка существования пользователя
activate BE
BE-->>X: Возвращает успешный ответ
deactivate BE
X-->>U: Разрешает ввод платежных данных
deactivate X
U->>X: Безопасно передает платежные данные
activate X
X->>BE: Отправляет вебхук Успешный платеж
activate BE
BE-->>X: Возвращает успешный ответ
deactivate BE
X-->>U: Отображает экран успешной покупки
X->>BE: Отправляет вебхук Создание подписки
activate BE
BE-->>X: Возвращает успешный ответ
deactivate BE
X-->>U: Отправляет письмо о создании подписки и чек
deactivate X
Автоматическое обновление рекуррентной подписки
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant U as Пользователь
participant BE as Приложение
participant X as Xsolla
activate X
note right of X: Продление подписки
deactivate X
X->>BE: Отправляет вебхук Проверка существования пользователя
activate BE
activate X
BE-->>X: Возвращает успешный ответ
deactivate BE
X-->>U: Выполняет списание с сохраненного способа оплаты
activate U
U->>X: Подтверждает списание
deactivate U
deactivate X
X->>BE: Отправляет вебхук Успешный платеж
activate X
activate BE
BE-->>X: Возвращает успешный ответ
deactivate BE
X->>BE: Отправляет вебхук Изменение подписки
activate BE
BE-->>X: Возвращает успешный ответ
deactivate BE
X-->>U: Отправляет письмо о продлении подписки и чек
deactivate X
Сценарий пользователя
flowchart LR
A[Планы подписки] --> B[Оформление заказа] --> C[Статус подписки] --> D[Письмо о покупке] --> E[Автопродление подписки]
Глоссарий
План подписки
Продукт подписки
Услуга или пакет услуг, предоставляемые пользователю по подписке. Для создания продукта используется метод API Создание продукта. Создание продуктов необходимо, если вы настраиваете продажу отдельных подписок на разные услуги или хотите дать пользователю возможность оформлять несколько подписок одновременно. Пример продукта подписки — доступ к каналу стримера, к игре или к уникальному предмету/уникальной способности. Подробнее о настройке и использовании продуктов вы можете прочитать в инструкции.
flowchart TD
subgraph G1[Group 1]
direction LR
P1[Plan 1] ~~~ P2[Plan 2] ~~~ P3[Plan 3]
end
G1 --> PR1[Product 1]
style G1 fill:#F3F3F1,stroke:#B0B0B0
flowchart TD
subgraph G2[Group 2]
direction LR
P4[Plan 4] ~~~ P5[Plan 5]
end
G2 --> PR2[Product 2]
G2 --> PR3[Product 3]
style G2 fill:#F3F3F1,stroke:#B0B0B0
Подписка
Сочетание продукта и выбранного плана. Подписка создается, когда пользователь выбирает план подписки и получает доступ к услуге. Количество созданных подписок, которые пользователь может оформить одновременно, зависит от количества продуктов в проекте. Условия подписки (расчетный период, стоимость и другие) соответствуют условиям выбранного плана. Если условия плана изменяются после создания подписки, условия существующей подписки не меняются.
ПРИМЕР 1
Продукт: Доступ к игре
- План подписки
Silver : $10 за 1 месяц - План подписки
Gold : $100 за 1 год
Пользователь может выбрать один из вариантов подписки:
- Подписка 1: Доступ к игре за $10 в месяц
- Подписка 2: Доступ к игре за $100 в год
ПРИМЕР 2
Продукт 1: Доступ к игре1
Продукт 2: Доступ к игре2
- План подписки: $10 за 1 месяц
Пользователь может одновременно оформить две подписки:
- Подписка 1: Доступ к игре1 за $10 в месяц
- Подписка 2: Доступ к игре2 за $10 в месяц
Группа планов
Набор планов, которые имеют одинаковое значение параметра group_id.
Чтобы создать или изменить группу, передайте параметр group_id в методы:
Создание группы планов необходимо, если вы хотите:
создать продукт подписки;
ограничить количество планов, которые можно выбрать для подписки на продукт;
дать возможность пользователю перейти на другой план внутри группы.
Подробнее о настройке и использовании групп вы можете прочитать в инструкции.
Пробный (триальный) период
- При покупке подписки с пробным периодом создается платежный аккаунт и выполняется авторизационный платеж — со счета клиента списывается небольшая сумма, после чего происходит возврат средств. При списании платежа вебхук о совершенном платеже не отправляется на указанный URL.
- После окончания пробного периода списывается полная стоимость плана подписки, при этом на указанный URL отправляются вебхуки Успешный платеж и Изменение подписки или Отмена подписки, если оплата подписки не удалась. Пробный период не входит в период действия плана и его длительность считается отдельно.
- Пробный период может быть добавлен в качестве бонуса в промоакцию.
Льготный период (грейс-период)
- Льготный период предусмотрен только для подписок с обычным типом плана и единовременным платежом. Для автопродлеваемых подписок средства списываются автоматически.
- Xsolla уведомляет пользователя о необходимости произвести оплату в момент активации льготного периода и каждый последующий день действия льготного периода.
- При оплате пользователем подписки во время действия льготного периода, оплата производится за полный платежный период.
- Количество дней, в течение которых у пользователя сохранялся доступ к сервису партнера без фактической оплаты, вычитается из общего количества дней в данном периоде действия подписки.
- Если в настройке плана в поле Льготный период установлено значение
0, такой план не имеет льготного периода.
Период попыток списания (ретрай-период)
- Период попыток списания период предусмотрен только для подписок с обычным типом плана и автоматическим типом платежей.
- Попытки списания средств осуществляются с сохраненного платежного аккаунта раз в сутки.
- Попытки списания продолжаются до тех пор, пока подписка не будет продлена, отменена пользователем или отменена в связи с окончанием количества попыток.
- При продлении пользователем подписки до окончания периода попыток списания, количество дней, в течение которых у пользователя сохранялся доступ к сервису партнера без фактической оплаты, вычитается из общего количества доступных дней в данном периоде действия подписки.
- Если в настройке плана в поле Количество попыток списания установлено значение
0, такой план не имеет периода попыток списания.
Автоматический платеж
Единовременный платеж
Статусы подписок
Подписка может находиться в одном из следующих статусов:
- Active. Основной статус подписки. Подписка создается и активируется после первого успешного платежа. Повторные списания средств осуществляются только у активных подписок.
- Canceled. Подписка отменена. При переходе в статус Canceled подписка перестает действовать немедленно. Возможные причины отмены:
- Изменился статус подписки через вызов API метода или настройки в Личном кабинете Xsolla.
- Пользователь отменил подписку.
- Закончился срок действия подписки (если был задан параметр expiration date).
- Превышено максимальное количество попыток списания средств при продлении подписки (значение по умолчанию — 3, может быть изменено через обращение к персональному менеджеру проекта или на почту [email protected]).
- Пользователь, у которого была данная подписка, не был найден при проверке существования пользователя в игре.
- Платежный аккаунт пользователя, к которому привязана данная подписка, был удален.
- Non renewing. Продление подписки отменено. Подписка будет действовать до окончания текущего платежного цикла и затем перейдет в статус Canceled. Возможные причины отмены продления:
- Изменился статус подписки через вызов API метода или настройки в Личном кабинете Xsolla.
- Пользователь отменил продление по ссылке в письме.
- Платежный аккаунт пользователя, к которому привязана данная подписка, был удален.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.