跳转到内容

概览

  • **版本:**2.0.0
  • 服务器
    • https://api.xsolla.com/api

支付中心通过向用户提供在游戏商店中进行游戏内购买支付时的便捷UI,让合作伙伴实现其游戏变现。要设置支付UI的打开,请参阅这些说明

Pay Station API提供以下调用组:

  • 令牌 — 包含使用任意用户参数生成令牌以便通过支付UI进行后续支付处理的API调用。
  • 令牌化 包含用于在不打开支付UI或无需用户介入的情况下安全处理支付的API调用。
  • 报告— 包含返回用户交易数据、生成报告及获取按货币分类的提现细目。
  • 退款 — 包含请求完全或部分退款的API调用。
  • 测试 — 包含测试拒付过程的API调用。

关于配置支付UI的详细信息,请参阅付款解决方案集成指南

注:

还可参阅Postman合集下的Xsolla Base API部分来测试用于集成的API调用。

下载 OpenAPI 描述
语言
服务器
https://api.xsolla.com/merchant/v2/
Mock server
https://xsolla.redocly.app/_mock/zh/api/pay-station/
操作

请求

您可以通过任意用户参数创建令牌。您在获取令牌时发送这些参数并在成功支付后会收到发回的参数。令牌只能包含本文档中描述的参数或您预定义的参数。

如果任何参数以不正确的格式或类型发送,将不会获得令牌。作为响应,您将收到422 HTTP代码,JSON正文中有相应的错误描述。在extended_message中,您将收到具体错误参数的相关信息。

默认情况下,令牌有效期是24小时。如要更改该值,请联系您的客户成功经理或发送邮件至csm@xsolla.com。新值将对您公司在发布商帐户中创建的所有项目启用。

注意

调用此API方法后获得的令牌只能用于授权其他请求。只有在集成了订阅产品的情况下才能使用此令牌打开支付UI。

要在新窗口中打开支付UI,请使用以下链接:https://secure.xsolla.com/paystation4/?token={token} ,其中{token}是收到的令牌。

如要进行测试,请使用以下URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}

注意

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

安全
basicAuth
路径
merchant_idinteger必需

商户ID。

正文application/json必需
custom_parametersobject(custom_parameters)

此对象包含配置防欺诈筛选条件的参数。参数列表如下所示。要添加自定义参数,请联系您的客户成功经理或发送邮件至csm@xsolla.com

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_currencynumber(float)

非高级货币数量。

custom_parameters.​notifications_enabledboolean

玩家是否启用了通知。

custom_parameters.​profile_completedboolean

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

custom_parameters.​profile_image_addedboolean

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

custom_parameters.​pvp_activityboolean

玩家是否参与了PvP(玩家对战)战斗。

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_valuenumber(float)

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

custom_parameters.​total_sumnumber(float)

付款总额。

custom_parameters.​tutorial_completedboolean

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

custom_parameters.​unlocked_achievementsinteger

未解锁的通关数。

custom_parameters.​user_levelinteger

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

custom_parameters.​win_rateinteger

赢率。

purchaseobject(purchase)

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

purchase.​is_lootboxboolean(is_lootbox)

该商品是否为宝箱。

默认值 false
purchase.​subscriptionobject(subscription)

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

purchase.​subscription.​available_plansArray of strings

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

purchase.​subscription.​currencystring

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

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(settings)

为用户配置支付流程和支付UI的设置。

settings.​currencystring(currency)

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

settings.​external_idstring(external_id)

游戏中的交易ID。该值对每个用户支付必须唯一。详细信息请参阅文档

settings.​languagestring(language)

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

settings.​modestring(mode.settings)

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

settings.​payment_methodinteger(payment_method)

付款方式ID。

settings.​payment_widgetstring(payment_widget)

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

枚举"paybycash""giftcard"
settings.​project_idinteger(project_id)必需

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

settings.​redirect_policyobject(redirect_policy)

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

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.​show_redirect_countdownboolean

是否在支付状态页面显示重定向倒计时。倒计时时长由settings.redirect_policy.delay参数的值决定。

默认值 false
settings.​redirect_policy.​status_for_manual_redirectionstring

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

枚举"none""successful""successful_or_canceled""any"
settings.​return_urlstring(return_url)

用户付款后重定向到的页面的URL。关于配置重定向的详细信息,请参阅文档

settings.​uiobject(ui)

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

settings.​ui.​alternative_first_screenstring(alternative_first_screen)

支付中心界面打开时的备选展示方式。例如,可优先显示某些支付方式。

当设置为apple-pay时,用户将看到Apple Pay按钮作为首选支付选项,并可通过链接查看其他支付方式列表。此逻辑不适用于Android设备。

"apple-pay"
settings.​ui.​apple_pay_quick_payment_buttonboolean(ap_quick_payment_button)

是否在支持设备的支付UI顶部显示通过Apple Pay快速支付的按钮。默认为true。如为false,则根据PayRank算法在支付方式列表中显示Apple Pay。

注:

在Android设备和其他不支持Apple Pay支付的设备上,无论该参数值如何,此支付方式都将在可用支付方式列表中隐藏。

settings.​ui.​componentsobject(components)

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

settings.​ui.​components.​subscriptionsobject

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

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

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

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

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

settings.​ui.​components.​virtual_currencyobject

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

settings.​ui.​components.​virtual_currency.​custom_amountboolean

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

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.​currency_formatstring(currency_format)

设置为code以在支付UI中显示三字母的ISO 4217货币代码。默认显示货币符号而不是三字母货币代码。

settings.​ui.​desktopobject(desktop.ui)

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

settings.​ui.​desktop.​headerobject(header.desktop)

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

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

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

settings.​ui.​desktop.​header.​close_button_iconstring(close_button_icon)

支付UI中的关闭按钮图标。

枚举 值描述
arrow

支付UI页眉左侧的图标。

cross

支付UI页眉右侧的×图标。

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在标题中显示。要上传图片,请在发布商帐户中打开您的项目,然后前往支付中心 > 设置部分。

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

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

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

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

settings.​ui.​desktop.​subscription_listobject(subscription_list.desktop)

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

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

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

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

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

settings.​ui.​gp_quick_payment_buttonboolean(gp_quick_payment_button)

Google Pay支付方式的显示方式。如为true,则通过Google Pay快速支付的按钮在支付UI顶部显示,无论用户使用的是什么设备或浏览器。如为false,则根据PayRank算法在支付方式列表中显示Google Pay。如果未传递此参数,Google Pay将显示在支付UI的顶部,适用于所有用户设备和除Safari外的浏览器。在Safari浏览器中,它会显示在支付方式列表中。

settings.​ui.​headerobject(header.ui)
settings.​ui.​header.​visible_virtual_currency_balanceboolean

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

settings.​ui.​is_cart_open_by_defaultboolean(is_cart_open_by_default)

在支付UI中显示购物车商品列表和结算明细。如为true,将以展开视图显示信息。如为false(默认情况)或未传递参数,将以折叠视图显示信息。

settings.​ui.​is_independent_windowsboolean(is_independent_windows)

是否将用户从嵌入式启动器浏览器(WebView)跳转到其默认的浏览器来进行购买。默认为false

settings.​ui.​is_language_selector_hiddenboolean(is_language_selector_hidden)

是否在支付页面隐藏语言选择器。如为false(默认),将显示选择器。

settings.​ui.​is_payment_methods_list_modeboolean(is_payment_methods_list_mode)

打开支付UI时是否显示在该用户所在国家/地区可用的支付方式。如为false(默认),将显示在settings.payment_method参数中传入的支付方式或PayRank算法选择的支付方式。

settings.​ui.​is_prevent_external_link_openboolean(is_prevent_external_link_open)

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

settings.​ui.​is_search_field_hiddenboolean(is_search_field_hidden)

是否在支付UI中显示支付方式搜索栏。如为true,则隐藏搜索栏,默认为false

settings.​ui.​is_show_close_widget_warningboolean(is_show_close_widget_warning)

关闭支付页面前鼠标悬停在 ×图标时是否显示交易正在处理中的警告。如传入false,或未传入参数,则不显示警告。默认为true

settings.​ui.​is_three_ds_independent_windowsboolean(is_three_ds_independent_windows)

是否在新浏览器窗口中打开3-D Secure检查。如果您的设置强制执行内容安全政策(CSP),请设置为true

默认值 false
settings.​ui.​layoutstring(layout)

支付UI主要元素的位置。您可以在游戏内打开支付UI和/或交换订单信息和支付方式信息列的位置。详细信息请参阅自定义说明

枚举"embed""column_reverse""embed_column_reverse"
settings.​ui.​mobileobject(mobile.ui)
settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

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

settings.​ui.​mobile.​header.​close_button_iconstring(close_button_icon)

支付UI中的关闭按钮图标。

枚举 值描述
arrow

支付UI页眉左侧的图标。

cross

支付UI页眉右侧的×图标。

settings.​ui.​modestring(mode.ui)

支付UI的显示模式,用于管理已保存的支付方式。可设置为user_account或省略。在此模式下,用户只能更改语言、添加新支付方式和删除现有支付方式。

注:

传入此参数后,跳转按钮将不会显示。若要在用户保存支付方式后进行重定向,请配置自动重定向

settings.​ui.​themestring(theme.ui)

支付UI主题。可以是63295a9a2e47fab76f7708e1(浅色主题(默认)),或63295aab2e47fab76f7708e3(深色主题)。您也可以创建自定义主题,然后在此参数中传入其ID。

枚举"63295a9a2e47fab76f7708e1""63295aab2e47fab76f7708e3"
settings.​ui.​user_accountobject(user_account)

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

settings.​ui.​user_account.​payment_accountsobject

保存的支付方式部分。

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

指定是否在支付UI中显示前往支付方式编辑页面的铅笔图标。默认为true

settings.​ui.​user_account.​payment_accounts.​orderinteger>= 1

该部分在支付UI下拉列表中的位置。如传入了settings.ui.user_account.payment_accounts.enable,则该属性为必需。

userobject(user)

带用户相关数据的对象。

user.​ageinteger(age.user)

用户年龄。

user.​attributesobject(attributes.user)

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

user.​countryobject(country.user)
user.​country.​allow_modifyboolean

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

user.​country.​valuestring

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

user.​emailobject(email.user)

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

user.​email.​allow_modifyboolean

用户是否可在支付UI中输入其邮箱。如令牌中传入了user.email.value参数,该值默认为false

user.​email.​valuestring<= 100 characters必需

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

user.​idobject(id.user)必需
user.​id.​valuestring必需

存储在己侧的游戏内唯一用户ID。请确保传入现有用户ID。如遇到错误,请参阅常见问题回答

user.​is_legalboolean(is_legal.user)

用户是否为法律实体。

user.​legalobject(legal.user)

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

user.​legal.​addressstring

完整法定地址。

user.​legal.​countrystring

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

user.​legal.​namestring

完整法定名称。

user.​legal.​vat_idstring

个人纳税人识别号。

user.​nameobject(name.user)
user.​name.​allow_modifyboolean

用户是否可在支付UI中输入其名字。如令牌中传入了user.name.value参数,该值默认为false

user.​name.​valuestring

用户昵称。

user.​phoneobject or null(phone.user)
user.​phone.​valuestring

电话号码。

user.​public_idobject(public_id.user)
user.​public_id.​valuestring

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

user.​steam_idobject(steam_id.user)
user.​steam_id.​valuestring

Steam ID。

user.​tracking_idobject(tracking_id.user)
user.​tracking_id.​valuestring= 32 characters

唯一用户ID — 用于营销活动。可包含数字和英文字符。

user.​utmobject(utm.user)

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

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://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "settings": {
      "currency": "USD",
      "language": "en",
      "project_id": 16184,
      "ui": {
        "size": "medium"
      }
    },
    "user": {
      "email": {
        "value": "email@example.com"
      },
      "id": {
        "value": "user_2"
      },
      "name": {
        "value": "John Smith"
      }
    }
  }'

响应

Created.

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