Created.
Pay Station API (2.0)
- **版本:**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调用。
请求
您可以通过任意用户参数创建令牌。您在获取令牌时发送这些参数并在成功支付后会收到发回的参数。令牌只能包含本文档中描述的参数或您预定义的参数。
如果任何参数以不正确的格式或类型发送,将不会获得令牌。作为响应,您将收到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密钥来设置授权。
此对象包含配置防欺诈筛选条件的参数。参数列表如下所示。要添加自定义参数,请联系您的客户成功经理或发送邮件至csm@xsolla.com。
带有购买相关数据的对象。
带有订阅相关数据的对象。
此操作的类型应用于用户订阅计划。要更改订阅计划,请传入change_plan值。需在purchase.subscription.plan_id参数中指定新计划的ID。
为用户配置支付流程和支付UI的设置。
首选支付币种。参照ISO 4217标准的三字母货币代码。
游戏中的交易ID。该值对每个用户支付必须唯一。详细信息请参阅文档。
界面语言。2字母(小写字母)语言代码。
设置为sandbox值以测试支付流程。请使用https://sandbox-secure.xsolla.com来访问测试支付UI。
支付小部件。可以是 paybycash 或 giftcard。如果参数已设置,用户将分别重定向到 Pay by Cash 或 Gift Cards 小部件。
重定向政策设置(对象)。
由用户点击关闭按钮或返回游戏按钮触发的支付中心行为。可以是redirect(默认)或postmessage。如果设置为redirect,则用户将被重定向至令牌中传入的URL或发布商帐户中指定的URL。如果设置为postmessage,则用户留在原页面。点击关闭按钮发起发送close事件,点击返回游戏则发起发送return事件。
将用户重定向至返回URL的支付状态。可以是none, successful, successful_or_canсeled或any。
是否在支付状态页面显示重定向倒计时。倒计时时长由settings.redirect_policy.delay参数的值决定。
用户付款后重定向到的页面的URL。关于配置重定向的详细信息,请参阅文档。
带有界面设置相关数据的对象。
支付中心界面打开时的备选展示方式。例如,可优先显示某些支付方式。
当设置为apple-pay时,用户将看到Apple Pay按钮作为首选支付选项,并可通过链接查看其他支付方式列表。此逻辑不适用于Android设备。
是否在支持设备的支付UI顶部显示通过Apple Pay快速支付的按钮。默认为true。如为false,则根据PayRank算法在支付方式列表中显示Apple Pay。
注:
在Android设备和其他不支持Apple Pay支付的设备上,无论该参数值如何,此支付方式都将在可用支付方式列表中隐藏。
带有模块菜单设置相关数据的对象。
带有订阅模块设置相关数据的对象。
带有虚拟货币模块设置相关数据的对象。
带有虚拟物品模块设置相关数据的对象。
在菜单中显示还是隐藏“管理订阅”页面。
设置为code以在支付UI中显示三字母的ISO 4217货币代码。默认显示货币符号而不是三字母货币代码。
带有对桌面版本有效的界面设置相关数据的对象。
带有标题设置相关数据的对象。
是否在支付UI中显示关闭按钮。该按钮将关闭支付UI并将用户重定向到settings.return_url参数中指定的URL。默认为false。
支付UI中的关闭按钮图标。
| 枚举 值 | 描述 |
|---|---|
| arrow | 支付UI页眉左侧的←图标。 |
| cross | 支付UI页眉右侧的×图标。 |
如何显示标题。不能为compact(隐藏项目名称和用户ID)或normal(默认)。
如为true,Logo在标题中显示。要上传图片,请在发布商帐户中打开您的项目,然后前往支付中心 > 设置部分。
带有订阅列表设置相关数据的对象。
Google Pay支付方式的显示方式。如为true,则通过Google Pay快速支付的按钮在支付UI顶部显示,无论用户使用的是什么设备或浏览器。如为false,则根据PayRank算法在支付方式列表中显示Google Pay。如果未传递此参数,Google Pay将显示在支付UI的顶部,适用于所有用户设备和除Safari外的浏览器。在Safari浏览器中,它会显示在支付方式列表中。
在支付UI中显示购物车商品列表和结算明细。如为true,将以展开视图显示信息。如为false(默认情况)或未传递参数,将以折叠视图显示信息。
是否将用户从嵌入式启动器浏览器(WebView)跳转到其默认的浏览器来进行购买。默认为false。
是否在支付页面隐藏语言选择器。如为false(默认),将显示选择器。
打开支付UI时是否显示在该用户所在国家/地区可用的支付方式。如为false(默认),将显示在settings.payment_method参数中传入的支付方式或PayRank算法选择的支付方式。
是否禁用将链接重定向至外部资源。默认为false。点击外部链接时,将通过postMessage机制发送external-link-open事件。重定向链接的地址在url参数中传递。
是否在支付UI中显示支付方式搜索栏。如为true,则隐藏搜索栏,默认为false。
关闭支付页面前鼠标悬停在 ×图标时是否显示交易正在处理中的警告。如传入false,或未传入参数,则不显示警告。默认为true。
是否在新浏览器窗口中打开3-D Secure检查。如果您的设置强制执行内容安全政策(CSP),请设置为true。
支付UI主要元素的位置。您可以在游戏内打开支付UI和/或交换订单信息和支付方式信息列的位置。详细信息请参阅自定义说明。
支付UI的显示模式,用于管理已保存的支付方式。可设置为user_account或省略。在此模式下,用户只能更改语言、添加新支付方式和删除现有支付方式。
注:
传入此参数后,跳转按钮将不会显示。若要在用户保存支付方式后进行重定向,请配置自动重定向。
支付UI主题。可以是63295a9a2e47fab76f7708e1(浅色主题(默认)),或63295aab2e47fab76f7708e3(深色主题)。您也可以创建自定义主题,然后在此参数中传入其ID。
对象以及有关用户账号的数据。
带用户相关数据的对象。
使用ISO 3166-1 alpha-2标准规定的2字母组合表示国家/地区。
user.email对象是反欺诈模型的必要部分,有助于提高接受率。同时它也是艾克索拉和支付系统的要求。如果未传入该参数,支付页面将显示输入邮箱必填字段。购买凭证将发送至在该参数中传入的或在支付页面上输入的邮箱地址。
用户电子邮箱。必须符合RFC 822协议标准。
存储在己侧的游戏内唯一用户ID。请确保传入现有用户ID。如遇到错误,请参阅常见问题回答。
包含法律实体详细信息的对象。
公司所在国家/地区。参照ISO 3166-1 alpha-2标准的两个大写字母表示的国家/地区代码。
对象包含描述流量特性的数据。
- https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
- Mock serverhttps://xsolla.redocly.app/_mock/zh/api/pay-station/merchants/{merchant_id}/token
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
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"
}
}
}'