创建目录UI
创建目录UI有三种方式:
使用自有界面
在您自己的界面创建目录时,可使用:
- 自有数据存储和任意身份认证方案。使用此种方式请在您自己一侧实现目录UI。
- 您自己的授权和列示所有计划服务器方法。获取计划列表后请在您自己一侧实现目录UI。
- 艾克索拉登录管理器和客户端侧API调用。
艾克索拉登录管理器和客户端侧API调用
要实现目录:
- 使用客户端方法获取订阅计划列表:
- 如项目配置了基于订阅的产品,请使用按产品获取订阅计划的客户端侧方法
- 如项目未配置基于订阅的产品,请使用获取订阅计划列表的客户端侧方法
- 实现在界面中显示收到的计划列表。
按产品获取订阅计划的客户端侧方法
在应用程序的的客户端侧,请使用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令牌(JWT),它是一个根据Base64标准编码的Base64编码令牌。要获取该令牌:
- 如应用程序使用用户名和密码认证,请使用
Register new user 和Auth by username and password API调用。 - 如应用程序使用通过社交网络认证,请使用
Auth via social network API调用。
以路径参数的形式指定:
projectId
— 项目ID。可在发布商帐户项目名称旁边找到该参数。
productID
— 基于订阅的产品ID。要获取该值,请联系您的帐户经理。
以请求参数的形式指定:
参数 | 类型 | 描述 |
---|---|---|
plan_id | array of integers | 计划ID。 |
| array of strings | 计划的外部ID。可在发布商帐户中的订阅 > 订阅计划 > 您的计划部分找到或通过列示所有计划API调用找到。 |
| integer | 页面上元素数量的限制。默认显示15项。 |
| integer | 元素编号,从该元素开始生成列表。默认从0开始数。 |
| string | 用两个小写字母表示的界面语言。接受ISO 639-1值。如未传入此值,则语言由用户IP地址决定。 |
| string | 用于识别用户国家/地区的ISO 3166-1 alpha-2两字母代码。此参数影响区域位置和货币的选择。如未传入此参数,则国家/地区由用户的IP地址决定。 |
curl -X 'GET' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/products/{productId}/plans?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
- js
{
"items": [
{
"plan_id": 54321,
"plan_external_id": "PlanExternalId",
"plan_group_id": "TestGroupId",
"plan_type": "all",
"plan_name": "Localized plan name",
"plan_description": "Localized plan description",
"plan_start_date": "2021-04-11T13:51:02+03:00",
"plan_end_date": "2031-04-11T13:51:02+03:00",
"trial_period": 7,
"period": {
"value": 1,
"unit": "month"
},
"charge": {
"amount": 4.99,
"setup_fee": 0.99,
"currency": "USD"
},
"promotion": {
"promotion_charge_amount": 3.99,
"promotion_remaining_charges": 3
}
}
],
"has_more": false
}
获取订阅计划列表的客户端侧方法
在应用程序的的客户端侧,请使用HTTP GET请求实现获取订阅计划列表:https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/plans
。
请求必须包含Authorization: Bearer <client_user_jwt>
头,其中<client_user_jwt>
是用户的JSON Web令牌(JWT),它是一个根据Base64标准编码的Base64编码令牌。要获取该令牌:
- 如应用程序使用用户名和密码认证,请使用
Register new user 和Auth by username and password API调用。 - 如应用程序使用通过社交网络认证,请使用
Auth via social network API调用。
指定项目ID作为projectId
路径参数。可在发布商帐户项目名称旁边找到该参数。
以请求参数的形式指定:
参数 | 类型 | 描述 |
---|---|---|
plan_id | array of integers | 计划ID。 |
| array of strings | 计划的外部ID。可在发布商帐户中的订阅 > 订阅计划 > 您的计划部分找到或通过列示所有计划API调用找到。 |
| integer | 页面上元素数量的限制。默认显示15项。 |
| integer | 元素编号,从该元素开始生成列表。默认从0开始数。 |
| string | 用两个小写字母表示的界面语言。接受ISO 639-1值。如未传入此值,则语言由用户IP地址决定。 |
| string | 用于识别用户国家/地区的ISO 3166-1 alpha-2两字母代码。此参数影响区域位置和货币的选择。如未传入此参数,则国家/地区由用户的IP地址决定。 |
curl -X 'GET' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/plans?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
- js
{
"items": [
{
"plan_id": 54321,
"plan_external_id": "PlanExternalId",
"plan_group_id": "TestGroupId",
"plan_type": "all",
"plan_name": "Localized plan name",
"plan_description": "Localized plan description",
"plan_start_date": "2021-04-11T13:51:02+03:00",
"plan_end_date": "2031-04-11T13:51:02+03:00",
"trial_period": 7,
"period": {
"value": 1,
"unit": "month"
},
"charge": {
"amount": 4.99,
"setup_fee": 0.99,
"currency": "USD"
},
"promotion": {
"promotion_charge_amount": 3.99,
"promotion_remaining_charges": 3
}
}
],
"has_more": false
}
使用艾克索拉支付中心
目录在支付UI中的创建方式取决于项目的身份认证设置:
自有授权系统
如应用程序使用您自己的授权系统:
- 实现通过服务器获取令牌API调用获取令牌。在请求的
user.id
和user.email
参数中传入用户信息。 - 实现在Pay Station Embed、iframe或新窗口中打开支付UI。
- js
{
"user": {
"id": {
"value": "1234567",
"hidden": true
}
},
"settings": {
"project_id": 123456,
"language": "en",
"currency": "USD"
}
}
艾克索拉登录管理器
如项目中设置了艾克索拉登录管理器:
在应用程序的的客户端侧,请使用HTTP POST请求实现支付UI的打开:https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy
。
请求必须包含Authorization: Bearer <client_user_jwt>
头,其中<client_user_jwt>
是用户的JSON Web令牌(JWT),它是一个根据Base64标准编码的Base64编码令牌。要获取该令牌:
- 如应用程序使用用户名和密码认证,请使用
Register new user 和Auth by username and password API调用。 - 如应用程序使用通过社交网络认证,请使用
Auth via social network API调用。
指定项目ID作为projectId
路径参数。可在发布商帐户项目名称旁边找到该参数。
指定country
作为请求参数,值为符合ISO 3166-1 alpha-2标准的用户国家/地区两字母代码。该参数影响区域位置和货币。如未传入该参数,则国家/地区由用户的IP地址决定。
请求正文参数:
参数 | 类型 | 描述 |
---|---|---|
| string | 必需。订阅计划的外部ID。可在发布商帐户 > 订阅 > 订阅计划部分找到。 |
| object | 带有自定义项目设置的对象。 |
| object | 带有界面设置相关数据的对象。 |
| string | 支付UI的大小。此参数可拥有以下值之一,具体取决于支付UI的所需大小:
|
| string | 支付UI的外观主题。可以是default 或default_dark 。 |
| string | 设备类型。可以是desktop (默认)或mobile 。 |
| object | 带有对桌面版本有效的界面设置相关数据的对象。 |
| object | 带有标题设置相关数据的对象。 |
| boolean | 是否在支付中心桌面端显示关闭按钮。该按钮将关闭支付中心并将用户重定向到settings.return_url 参数中指定的URL。默认为false 。 |
| boolean | 标题在支付UI上是否可见。 |
| string | 标题外观。可以是compact (游戏名和用户ID不在标题中显示)或normal 。 |
| boolean | 如果为true ,标头中将显示Logo(请先把Logo文件提供给您的项目经理)。 |
| boolean | 标题中是否显示项目名称。 |
| string | 如何显示标题。可以是compact (隐藏项目名称和用户ID)或normal (默认)。 |
| string | 用户仅可以通过他们已保存的付款方式进行付款。可以为saved_accounts 。 |
| boolean | 是否在移动版本的支付UI中隐藏或显示脚注。 |
| boolean | 是否在支付中心移动版中显示关闭按钮。该按钮将关闭支付中心并将用户重定向到settings.return_url 参数中指定的URL。默认为false 。 |
| string | EULA的链接。 |
| string | 支付中心中的界面模式。只能是user_account :标头仅包含帐户导航菜单,而没有用于选择产品或进行付款的任何选项。此模式仅在桌面版中可用。 |
| object | 对象以及有关用户账号的数据。 |
| object | 历史记录子菜单。 |
| integer | 该部分是否应在支付UI的下拉菜单中显示。可以是true 或false 。如未传入此参数,则不显示该部分。 |
| integer | 该部分在支付界面下拉菜单中的位置。 |
| object | 我的帐户页面。 |
| integer | 该部分在支付UI下拉菜单中的位置。 |
| boolean | 该部分是否应在支付UI的下拉菜单中显示。可以是true 或false 。如未传入此参数,则不显示该部分。 |
| object | 我的支付帐户子菜单。 |
| integer | 该部分在支付UI下拉菜单中的位置。 |
| boolean | 是否显示子菜单。可以是true 或false 。如未传入此参数,则显示该部分。 |
| object | 管理订阅子菜单。 |
| boolean | 是否显示子菜单。可以是true 或false 。如未传入此参数,则显示该部分。 |
settings.ui.user_account.subscriptions.order | integer | 该部分在支付UI下拉菜单中的位置。 |
| string | 首选支付币种。参照ISO 4217标准的三字母货币代码。 |
| string | 游戏中的交易ID。值对于每个用户付款必须唯一。 |
| integer | 支付方式ID。要获取支付方式ID列表,您可以前往发布商帐户,或使用获取支付方式API调用。 |
| string | 用户在支付过后重定向到的页面。参数user_id 、foreigninvoice 、invoice_id 和status 将自动添加到链接中。 |
| object | 重定向政策设置(对象)。 |
| string | 支付后将用户重定向到返回URL的支付状态。可以是none 、successful 、successful_or_canceled 或any 。 |
settings.redirect_policy.delay | integer | 延迟时间(单位为秒),经过该时间后用户将自动重定向至返回URL。 |
| string | 支付后将用户重定向到返回URL的支付状态。可以是none 、successful 、successful_or_canceled 或any 。 |
| string | 手动重定向按钮上的文字。 |
如需要,传入自定义补充参数。
curl -X 'POST' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
{
"plan_external_id": "PlanExternalId",
"settings": {
"ui": {
"size": "large",
"theme": "string",
"version": "desktop",
"desktop": {
"header": {
"is_visible": true,
"visible_logo": true,
"visible_name": true,
"type": "compact",
"close_button": true
}
},
"mobile": {
"mode": "saved_accounts",
"footer": {
"is_visible": true
},
"header": {
"close_button": true
}
},
"license_url": "string",
"mode": "user_account",
"user_account": {
"history": {
"enable": true,
"order": 1
},
"payment_accounts": {
"enable": true,
"order": 1
},
"info": {
"enable": true,
"order": 1
},
"subscriptions": {
"enable": true,
"order": 1
}
}
},
"currency": "string",
"locale": "string",
"external_id": "string",
"payment_method": 1,
"return_url": "string",
"redirect_policy": {
"redirect_conditions": "none",
"delay": 0,
"status_for_manual_redirection": "none",
"redirect_button_caption": "string"
}
}
}
{
"link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
}
在艾克索拉支付中心里显示订阅目录的示例:

使用艾克索拉建站器
通过艾克索拉建站器您可以创建并设置自己的网站来销售订阅。方法是使用Web商店模板来创建网站。关于设置角色的详细信息,请参阅在有用户认证功能的Web商店中销售说明。

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。