跳转到内容

概览

  • Version: 2.0
  • 服务器https://api.xsolla.com/merchant/v2/

本API参考介绍管理订阅、优惠券和促销活动的端点。 如需了解关于订阅的详细信息,请参考产品指南词汇表

下载 OpenAPI 描述
语言
服务器
Mock server
https://xsolla.redocly.app/_mock/zh/api/subscriptions/
操作

请求

您可以使用任意用户参数创建令牌。 您在获取令牌时发送这些参数,并在成功付款后接收它们。 令牌只能包含本文档中描述的或由您预定义的参数。

If任何参数以错误的格式发送或具有错误的类型,都不会发出令牌。 您将收到一个422HTTP代码,其中包含JSON正文中的错误描述。 在extended_message中,您将收到错误发送的确切参数的信息。

注意

此API调用不包含project_id路径参数,因此您需要使用在您公司的所有项目中都有效的API密钥来设置授权。

安全
basicAuth
路径
merchant_idinteger必需

商户ID。

正文application/json必需
custom_parametersobject

您可以在令牌的custom_parameters对象中传递其他参数以配置反欺诈筛选器。推荐参数在下拉列表中显示。请参阅支付中心文档

custom_parameters.​active_datestring

上一次出现日期(按照ISO 8601格式)。

custom_parameters.​additional_verificationboolean

玩家是否使用了帐户验证流程。

custom_parameters.​character_customizedboolean

玩家是否对角色进行了自定义。

custom_parameters.​chat_activityboolean

玩家是否使用了聊天功能。

custom_parameters.​completed_tasksinteger

完成的任务/目标数。

custom_parameters.​forum_activityboolean

玩家是否使用了论坛功能。

custom_parameters.​items_usedboolean

玩家是否使用了购买的游戏装备。

custom_parameters.​karma_pointsinteger

玩家的贡献/业力。

custom_parameters.​last_change_password_datestring

上一次出现日期(按照ISO 8601格式)。

custom_parameters.​non_premium_currencyinteger(float)

非高级货币数量。

custom_parameters.​notifications_enabledboolean

玩家是否启用了通知。

custom_parameters.​profile_completedboolean

玩家在帐户资料中是否添加了其它信息。

custom_parameters.​profile_image_addedboolean

玩家是否上传了简介头像。

custom_parameters.​pvp_activityboolean

玩家是否参与了玩家对战。

custom_parameters.​registration_datestring

上一次出现日期(按照ISO 8601格式)。

custom_parameters.​session_timestring

上一次出现日期(按照ISO 8601格式)。

custom_parameters.​social_networks_addedboolean

玩家是否有关联的社交媒体帐户资料。

custom_parameters.​total_bansinteger

玩家在聊天/论坛中被禁言的次数。

custom_parameters.​total_charactersinteger

游戏角色数。

custom_parameters.​total_clansinteger

玩家所属的家族数。

custom_parameters.​total_friendsinteger

好友数。

custom_parameters.​total_game_eventsinteger

玩家参与的游戏事件数。

custom_parameters.​total_giftsinteger

玩家发出/收到的游戏礼物数。

custom_parameters.​total_hoursinteger

游戏总时数。

custom_parameters.​total_inventory_valueinteger(float)

库存总值(以游戏货币为单位)。

custom_parameters.​total_suminteger(float)

付款总额。

custom_parameters.​tutorial_completedboolean

玩家是否完成了游戏教程。

custom_parameters.​unlocked_achievementsinteger

未解锁的通关数。

custom_parameters.​user_levelinteger

玩家的等级、口碑或排名。

custom_parameters.​win_rateinteger

赢率。

purchaseobject

带有购买相关数据的对象。

示例: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}}
purchase.​checkoutobject

带有结账参数相关数据的对象。

示例: {"amount":10,"currency":"USD"}
purchase.​checkout.​amountinteger(float)

购买金额。

示例: 10
purchase.​checkout.​currencystring

购买币种。参照ISO 4217标准的三字母货币代码。

示例: "USD"
purchase.​subscriptionobject

带有订阅相关数据的对象。

示例: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}
purchase.​subscription.​available_plansArray of strings

包含订阅套餐相关数据的数组。只有这些套餐会显示在支付用户界面中。

purchase.​subscription.​currencystring

购买计划的货币,以此币种进行所有计算。

purchase.​subscription.​giftobject

赠礼订阅的详细信息。

示例: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"}
purchase.​subscription.​gift.​anonymousboolean

是否隐藏送礼人姓名。如为true,则在邮件通知中隐藏送礼人姓名。默认为false

purchase.​subscription.​gift.​emailstring必需

接收人邮箱。

示例: "recipient_email@email.com"
purchase.​subscription.​gift.​messagestring

给接收者的留言。

purchase.​subscription.​gift.​recipientstring必需

接收者ID。

示例: "test_recipient_v1"
purchase.​subscription.​gift.​redirect_urlstring

在此处提供包含赠礼订阅额外信息的页面链接或帐户创建页面的链接。收礼人可从订阅赠礼邮件通知中跳转到该页面。

purchase.​subscription.​operationstring

此操作的类型应用于用户订阅计划。要更改订阅计划,请传入change_plan值。需在purchase.subscription.plan_id参数中指定新计划的ID。

purchase.​subscription.​plan_idstring

订阅计划的外部ID。可在发布商帐户的订阅 > 订阅计划中找到。

purchase.​subscription.​product_idstring

产品ID。

purchase.​subscription.​trial_daysinteger

试用期,以天为单位。

settingsobject

自定义项目设置。

示例: {"currency":"USD","language":"en","project_id":16184,"ui":{"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}}
settings.​currencystring

首选支付币种。参照ISO 4217标准的三字母货币代码。

示例: "USD"
settings.​external_idstring

游戏中的交易ID。值对于每个用户付款必须唯一。

settings.​languagestring

界面语言。2字母(小写字母)语言代码

示例: "en"
settings.​modestring

设置为sandbox值以测试支付流程。请使用https://sandbox-secure.xsolla.com来访问测试支付UI。

settings.​payment_methodinteger

付款方式ID。

settings.​payment_widgetstring

支付小部件。可以是 paybycashgiftcard。如果参数已设置,用户将分别重定向到 Pay by Cash 或 Gift Cards 小部件。

枚举"paybycash""giftcard"
settings.​project_idinteger必需

游戏的艾克索拉ID。可以在发布商帐户中找到该ID。

示例: 16184
settings.​redirect_policyobject

重定向政策设置(对象)。

settings.​redirect_policy.​autoredirect_from_status_pageboolean

从状态页面自动重定向。

settings.​redirect_policy.​delayinteger

延迟时间(单位为秒),经过该时间后用户将自动重定向至返回URL。

settings.​redirect_policy.​manual_redirection_actionstring

由用户点击关闭按钮或返回游戏按钮触发的支付中心行为。可以是redirect(默认)或postmessage。如果设置为redirect,则用户将被重定向至令牌中传入的URL或发布商帐户中指定的URL。如果设置为postmessage,则用户留在原页面。点击关闭按钮发起发送close事件,点击返回游戏则发起发送return事件。

枚举"redirect""postmessage"
settings.​redirect_policy.​redirect_button_captionstring

手动重定向按钮上的文字。

settings.​redirect_policy.​redirect_conditionsstring

将用户重定向至返回URL的支付状态。可以是none, successful, successful_or_canсeledany

枚举"none""successful""successful_or_canceled""any"
settings.​redirect_policy.​status_for_manual_redirectionstring

显示让用户重定向至返回URL按钮的支付状态。可以是none, successful, successful_or_canсeledany

枚举"none""successful""successful_or_canceled""any"
settings.​return_urlstring

用户会在支付过后被重定向到此页面。参数user_idforeigninvoiceinvoice_idstatus会被自动添加到此链接。

settings.​uiobject

带有界面设置相关数据的对象。

示例: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}
settings.​ui.​componentsobject

带有模块菜单设置相关数据的对象。

示例: {"virtual_currency":{"custom_amount":true}}
settings.​ui.​components.​subscriptionsobject

带有订阅模块设置相关数据的对象。

settings.​ui.​components.​subscriptions.​hiddenboolean

在菜单中显示还是隐藏“管理订阅”页面。

settings.​ui.​components.​subscriptions.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​components.​virtual_currencyobject

带有虚拟货币模块设置相关数据的对象。

示例: {"custom_amount":true}
settings.​ui.​components.​virtual_currency.​custom_amountboolean

是否允许在支付UI中输入任意数量的虚拟货币。

示例: true
settings.​ui.​components.​virtual_currency.​hiddenboolean

在菜单中显示还是隐藏“管理订阅”页面。

settings.​ui.​components.​virtual_currency.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​components.​virtual_itemsobject

带有虚拟物品模块设置相关数据的对象。

settings.​ui.​components.​virtual_items.​hiddenboolean

在菜单中显示还是隐藏“管理订阅”页面。

settings.​ui.​components.​virtual_items.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​components.​virtual_items.​selected_groupstring

用户打开虚拟物品选项卡时将会选择的组。

settings.​ui.​components.​virtual_items.​selected_itemstring

用户打开虚拟物品选项卡时将会选择的物品。物品 SKU 应发送至此处。

settings.​ui.​desktopobject

带有对桌面版本有效的界面设置相关数据的对象。

示例: {"virtual_item_list":{"button_with_price":true,"layout":"list"}}
settings.​ui.​desktop.​headerobject

带有标题设置相关数据的对象。

settings.​ui.​desktop.​header.​close_buttonboolean

是否在支付中心桌面端显示关闭按钮。该按钮将关闭支付中心并将用户重定向到settings.return_url参数中指定的URL。默认为false

settings.​ui.​desktop.​header.​is_visibleboolean

标题在支付 UI 上是否可见。

settings.​ui.​desktop.​header.​typestring

如何显示标题。不能为compact(隐藏项目名称和用户ID)或normal(默认)。

枚举"compact""normal"
settings.​ui.​desktop.​header.​visible_logoboolean

如果为true,标题中将显示Logo(请先把Logo文件提供给您的客户成功经理)。

settings.​ui.​desktop.​header.​visible_nameboolean

标题中是否显示项目名称。

settings.​ui.​desktop.​header.​visible_purchaseboolean

是否在标题中显示购买描述(purchase.description.value)。默认为true

settings.​ui.​desktop.​subscription_listobject

带有订阅列表设置相关数据的对象。

settings.​ui.​desktop.​subscription_list.​descriptionstring

可以在此传递订阅相关的任意文本。文本将显示在订阅计划列表的上方。

settings.​ui.​desktop.​subscription_list.​display_local_priceboolean

如为true且如果用户的当地货币与订阅计划的货币不同,则用户将看到两种价格:以当地货币和基础货币标价的价格。

settings.​ui.​desktop.​subscription_list.​layoutstring

订阅列表模式。可以是list(默认值)或grid

枚举"list""grid"
settings.​ui.​desktop.​virtual_currency_listobject

带有虚拟货币列表设置相关数据的对象。

settings.​ui.​desktop.​virtual_currency_list.​button_with_priceboolean

如果为true,则价格会显示在按钮里。如果为false,则价格会显示在按钮左侧。默认值为false

settings.​ui.​desktop.​virtual_currency_list.​descriptionstring

可以在此传递虚拟货币列表相关的任意文本。文本将显示在虚拟货币包列表的上方。

settings.​ui.​desktop.​virtual_item_listobject

带有虚拟物品列表设置相关数据的对象。

示例: {"button_with_price":true,"layout":"list"}
settings.​ui.​desktop.​virtual_item_list.​button_with_priceboolean

如果为true,则价格会显示在按钮里。如果为false,则价格会显示在按钮左侧。默认值为false

示例: true
settings.​ui.​desktop.​virtual_item_list.​layoutstring

订阅列表模式。可以是list(默认值)或grid

枚举"list""grid"
示例: "list"
settings.​ui.​desktop.​virtual_item_list.​viewstring

以垂直/水平菜单显示虚拟项目组。可以horizontal_navigationvertical_navigation(默认)。

枚举"horizontal_navigation""vertical_navigation"
settings.​ui.​headerobject
settings.​ui.​header.​visible_virtual_currency_balanceboolean

此元素是否可在支付UI上隐藏。默认为true

settings.​ui.​is_prevent_external_link_openboolean

是否禁用将链接重定向至外部资源。默认为true。点击外部链接时,将通过postMessage机制发送external-link-open事件。重定向链接的地址在url参数中传递。

settings.​ui.​license_urlstring

EULA的链接。

settings.​ui.​mobileobject
settings.​ui.​mobile.​footerobject
settings.​ui.​mobile.​footer.​is_visibleboolean

是否在移动版本的支付UI中隐藏或显示脚注。

settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

是否在支付中心移动端显示关闭按钮。该按钮将关闭支付中心并将用户重定向到settings.return_url参数中指定的URL。默认为false

settings.​ui.​mobile.​modestring

用户仅可以通过他们已保存的付款方式进行付款。可以为saved_accounts

"saved_accounts"
settings.​ui.​modestring

支付中心的界面模式。可能的值为user_account。请注意,页眉仅包含用户帐户的导航菜单,而没有用于选择产品或进行付款的任何选项。“用户帐户”仅在桌面模式下可用。

settings.​ui.​sizestring

支付UI的大小。此参数可拥有以下值之一,具体取决于支付UI的所需大小:

  • small:支付UI支持的最小尺寸。当窗口大小严格受限时,请使用此值(尺寸:620 x 630)
  • medium:支付UI的推荐大小。使用此值可以在灯箱中显示支付UI(尺寸:740 x 760)
  • large:在新窗口或者选项卡中显示支付UI的最佳大小(尺寸:820 x 840)
枚举"small""medium""large"
示例: "medium"
settings.​ui.​themestring

支付UI的外观主题。可以是default(默认值)或default_dark

枚举"default""default_dark"
settings.​ui.​user_accountobject

对象以及有关用户账号的数据。

settings.​ui.​user_account.​historyobject

历史记录子菜单。

settings.​ui.​user_account.​history.​enableboolean

在菜单中显示还是隐藏“管理订阅”页面。默认值为false

settings.​ui.​user_account.​history.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​user_account.​infoobject

我的账户页面。

settings.​ui.​user_account.​info.​enableboolean

在菜单中显示还是隐藏“管理订阅”页面。默认值为false

settings.​ui.​user_account.​info.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​user_account.​payment_accountsobject

保存的付款方法子菜单。

settings.​ui.​user_account.​payment_accounts.​enableboolean

在菜单中显示还是隐藏“管理订阅”页面。默认值为false

settings.​ui.​user_account.​payment_accounts.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​user_account.​subscriptionsobject

管理订阅子菜单。

settings.​ui.​user_account.​subscriptions.​enableboolean

在菜单中显示还是隐藏“管理订阅”页面。默认值为false

settings.​ui.​user_account.​subscriptions.​orderinteger

虚拟物品在模块菜单中的排列顺序。

settings.​ui.​versionstring

设备的类型。可以是desktop(默认值)或mobile

枚举"desktop""mobile"
userobject

带用户相关数据的对象。

示例: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}}
user.​ageinteger

用户年龄。

示例: 19
user.​attributesobject

带有用户属性相关数据的对象,用于筛选物品列表。应当是带键值对的有效JSON哈希。

user.​countryobject
示例: {"allow_modify":true,"value":"US"}
user.​country.​allow_modifyboolean

用户是否可以更改支付UI上的国家/地区。如果令牌中传入了country.value值,则值默认为false

示例: true
user.​country.​valuestring

使用ISO 3166-1 alpha-2标准规定的2字母组合表示国家/地区。

示例: "US"
user.​emailobject

user.email对象是反欺诈模型的必要部分,有助于提高接受率。同时它也是艾克索拉和支付系统的要求。如果未传入该参数,支付页面将显示输入邮箱必填字段。购买凭证将发送至在该参数中传入的或在支付页面上输入的邮箱地址。

示例: {"value":"john.smith@mail.com"}
user.​email.​valuestring必需

用户电子邮箱。必须符合RFC 822协议标准。

示例: "john.smith@mail.com"
user.​idobject必需
示例: {"value":"user_2"}
user.​id.​valuestring必需

用户ID。

示例: "user_2"
user.​is_legalboolean

用户是否为法律实体。

user.​legalobject

包含法律实体详细信息的对象。

user.​legal.​addressstring

完整法定地址。

user.​legal.​countrystring

公司所在国家/地区。参照ISO 3166-1 alpha-2标准的两个大写字母表示的国家/地区代码。

user.​legal.​namestring

完整法定名称。

user.​legal.​vat_idstring

个人纳税人识别号。

user.​nameobject
示例: {"value":"John Smith"}
user.​name.​valuestring

用户昵称。

示例: "John Smith"
user.​phoneobject
user.​phone.​valuestring

电话号码。

user.​public_idobject
user.​public_id.​valuestring

唯一识别用户并为用户所熟知的参数,与用户ID(电子邮件、昵称等)不同。此参数在可以在游戏商店以外进行购买时使用(如现金售货亭中的游戏按键)。

user.​steam_idobject
user.​steam_id.​valuestring

Steam ID。

user.​tracking_idobject
user.​tracking_id.​valuestring

唯一的跟踪ID(用于营销活动)。

user.​utmobject

对象包含描述流量特性的数据。

user.​utm.​utm_campaignstring

活动标题。该参数应当包含直译的活动标题或者翻译为英文的活动标题。

user.​utm.​utm_contentstring

该活动的实质。

user.​utm.​utm_mediumstring

流量渠道(内容关联广告、媒体广告、邮件列表消息)。

user.​utm.​utm_sourcestring

流量来源。

user.​utm.​utm_termstring

活动关键词。在指定该参数的情况下,统计数据是基于在确定您的广告活动的目标对象过程中所使用的关键词数据而生成的,而不是基于检索项数据。在Google Analytics中,utm_term标签的内容成为包含检索项的综合报告中的一部分。

curl -i -X POST \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/zh/api/subscriptions/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "purchase": {
      "checkout": {
        "amount": 10,
        "currency": "USD"
      },
      "subscription": {
        "gift": {
          "email": "recipient_email@email.com",
          "recipient": "test_recipient_v1"
        }
      }
    },
    "settings": {
      "currency": "USD",
      "language": "en",
      "project_id": 16184,
      "ui": {
        "components": {
          "virtual_currency": {
            "custom_amount": true
          }
        },
        "desktop": {
          "virtual_item_list": {
            "button_with_price": true,
            "layout": "list"
          }
        },
        "size": "medium"
      }
    },
    "user": {
      "age": 19,
      "country": {
        "allow_modify": true,
        "value": "US"
      },
      "email": {
        "value": "john.smith@mail.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

响应

Created.

正文application/json
tokenstring
响应
application/json
{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }
操作
操作
操作
操作
操作
操作
操作