Создание каталога

Возможны следующие способы создания каталога подписок:

В собственном интерфейсе

При создании каталога в собственном интерфейсе вы можете использовать:

  • Собственное хранилище данных и любой вариант авторизации. В этом случае реализуйте отображение каталога на своей стороне.
  • Собственную авторизацию и серверный метод Получение планов. После получения списка планов реализуйте отображение каталога на своей стороне.
  • Xsolla Login и клиентские методы API.
Примечание
При реализации каталога в собственном интерфейсе вы можете также использовать библиотеки SDK. Применение готовых библиотек позволяет упросить интеграцию продуктов Xsolla в проект, предоставляя готовые структуры данных и методы для работы с Xsolla API.
Если вы используете Xsolla Login, для реализации каталога:
  1. Получите список планов подписок с помощью клиентских методов:
  2. Реализуйте отображение полученного списка планов в интерфейсе.

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

В клиентской части вашего приложения реализуйте получение списка планов по продукту с использованием HTTP GET-запроса https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/products/{​​productId}/plans.

Запрос к методу должен содержать заголовок Authorization: Bearer <client_user_jwt>, где <client_user_jwt> — JSON Web Token (JWT) пользователя — уникальный токен, закодированный по стандарту Base64. Используйте для его получения:

  • Методы API Register new user и Auth by username, если в вашем приложении используется авторизация по логину и паролю.
  • Метод API Auth via social network, если в вашем приложении используется авторизация через социальные сети.

В качестве path-параметра укажите:
  • projectId — ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.
  • productID — ID продукта подписки. Для его получения обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

В качестве query-параметров укажите:
ПараметрТипОписание
plan_id
array of integersID рекуррентного плана.
plan_external_id
array of stringsВнешний ID плана. Вы можете найти этот параметр в проекте в Личном кабинете в разделе Каталог товаров > Подписки > Планы подписки > ваш план или с помощью метода Список планов.
limit
integerЛимит количества элементов на странице. По умолчанию отображается 15 элементов.
offset
integerНомер элемента, с которого выполняется вывод на странице. По умолчанию нумерация начинается с 0.
locale
stringЯзык интерфейса в двухбуквенном обозначении согласно стандарту ISO 639-1. Если параметр не передается, язык определяется по IP-адресу пользователя. Если переданная локаль отсутствует в списке Xsolla, английский язык используется по умолчанию.
country
stringСтрана пользователя в двухбуквенном обозначении согласно стандарту ISO 3166-1 alpha-2. Влияет на выбор языка интерфейса и валюты. Если параметр не передается, страна определяется по IP-адресу пользователя.
Copy
Full screen
Small screen
1curl -X 'GET' \
2'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/products/{​​productId}/plans?country=RU  ' \
3  -H 'accept: application/json' \
4  -H 'Authorization: Bearer client_user_jwt'
Copy
Full screen
Small screen
 1{
 2  "items": [
 3    {
 4      "plan_id": 54321,
 5      "plan_external_id": "PlanExternalId",
 6      "plan_group_id": "TestGroupId",
 7      "plan_type": "all",
 8      "plan_name": "Localized plan name",
 9      "plan_description": "Localized plan description",
10      "plan_start_date": "2021-04-11T13:51:02+03:00",
11      "plan_end_date": "2031-04-11T13:51:02+03:00",
12      "trial_period": 7,
13      "period": {
14        "value": 1,
15        "unit": "month"
16      },
17      "charge": {
18        "amount": 4.99,
19        "setup_fee": 0.99,
20        "currency": "USD"
21      },
22      "promotion": {
23        "promotion_charge_amount": 3.99,
24        "promotion_remaining_charges": 3
25      }
26    }
27  ],
28  "has_more": false
29}

Клиентский метод получения списка планов

В клиентской части вашего приложения реализуйте получение списка планов по продукту с использованием HTTP GET-запроса https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/plans.

Запрос к методу должен содержать заголовок Authorization: Bearer <client_user_jwt>, где <client_user_jwt> — JSON Web Token (JWT) пользователя — уникальный токен, закодированный по стандарту Base64. Используйте для его получения:

  • Методы API Register new user и Auth by username, если в вашем приложении используется авторизация по логину и паролю.
  • Метод API Auth via social network, если в вашем приложении используется авторизация через социальные сети.

В качестве path-параметра укажите projectId — ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.

В качестве query-параметров укажите:

ПараметрТипОписание
plan_id
array of integersID рекуррентного плана.
plan_external_id
array of stringsВнешний ID плана. Вы можете найти этот параметр в проекте в Личном кабинете в разделе Каталог товаров > Подписки > Планы подписки > ваш план или с помощью метода Список планов.
limit
integerЛимит количества элементов на странице. По умолчанию отображается 15 элементов.
offset
integerНомер элемента, с которого выполняется вывод на странице. По умолчанию нумерация начинается с 0.
locale
stringЯзык интерфейса в двухбуквенном обозначении согласно стандарту ISO 639-1. Если параметр не передается, язык определяется по IP-адресу пользователя. Если переданная локаль отсутствует в списке Xsolla, английский язык используется по умолчанию.
country
stringСтрана пользователя в двухбуквенном обозначении согласно стандарту ISO 3166-1 alpha-2. Влияет на выбор языка интерфейса и валюты. Если параметр не передается, страна определяется по IP-адресу пользователя.
Copy
Full screen
Small screen
1curl -X 'GET' \
2'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/plans?country=RU  ' \
3  -H 'accept: application/json' \
4  -H 'Authorization: Bearer client_user_jwt'
Copy
Full screen
Small screen
 1{
 2  "items": [
 3    {
 4      "plan_id": 54321,
 5      "plan_external_id": "PlanExternalId",
 6      "plan_group_id": "TestGroupId",
 7      "plan_type": "all",
 8      "plan_name": "Localized plan name",
 9      "plan_description": "Localized plan description",
10      "plan_start_date": "2021-04-11T13:51:02+03:00",
11      "plan_end_date": "2031-04-11T13:51:02+03:00",
12      "trial_period": 7,
13      "period": {
14        "value": 1,
15        "unit": "month"
16      },
17      "charge": {
18        "amount": 4.99,
19        "setup_fee": 0.99,
20        "currency": "USD"
21      },
22      "promotion": {
23        "promotion_charge_amount": 3.99,
24        "promotion_remaining_charges": 3
25      }
26    }
27  ],
28  "has_more": false
29}

В платежном интерфейсе Xsolla

  1. Реализуйте получение токена с помощью серверного метода Создание токена. В запросе к методу передайте параметры:
    • user.id — ID пользователя в вашей системе авторизации;
    • user.email — email-адрес пользователя. Должен быть валидным в соответствии с протоколом RFC 822;
    • settings.project_id — ID проекта, который вы можете найти в Личном кабинете рядом с названием проекта.
  2. Реализуйте открытие платежного интерфейса одним из способов:
Copy
Full screen
Small screen
 1{
 2    "user": {
 3        "name": {
 4            "value": "j.smith@email.com"
 5        },
 6        "id": {
 7            "value": "123a345b678c091d"
 8        }
 9    },
10    "settings": {
11        "project_id": 177226
12    }
13}

Пример отображения каталога подписок в платежном интерфейсе Xsolla:

В Xsolla Site Builder

В Site Builder вы можете создать и настроить свой сайт для продажи подписок. Для этого создайте сайт с помощью шаблона Web Shop. Подробнее о настройке вы можете прочитать в инструкции Web Shop с аутентификацией пользователя.

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 8 октября 2025

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!
Не получилось отправить ваш комментарий
Попробуйте еще раз позже или напишите нам на doc_feedback@xsolla.com.