设置商品销售
游戏内商店可让您以真实货币或虚拟货币的形式来销售以下游戏内商品,从而实现游戏的变现:
- 游戏内货币和货币套餐
- 消耗品
- 非消耗品
- 时效性商品
商品 | 销售方式 |
---|---|
一个商品(例如虚拟物品或自定义) | 快速购买调用 |
购物车中的多个商品 | 传入唯一用户ID。唯一用户ID在调用虚拟物品和货币方法组下目录子部分的API方法时以数字或字符串形式在标题中使用(x-unauthorized-id 参数)。标识符在前端侧生成,例如通过标识符生成库生成。 |
要管理用户对您的应用程序以及艾克索拉产品功能的访问权限,请设置用户认证系统。对此,您可以使用艾克索拉登录管理器或实现自有认证系统。
如果您已实现了自有认证系统而仅需要支付UI,可以生成支付中心访问令牌并在您的服务器上设置Webhook。
如果没有自己的服务器或希望使用现成解决方案,可为您的游戏内商店使用艾克索拉登录管理器。以下功能在艾克索拉侧执行:
- 存储及管理目录
- 管理结果
- 存储区域价格的数据
- 认证用户
- 处理交易
通过艾克索拉登录管理器进行认证
艾克索拉登录管理器支持用于用户注册和认证的OAuth 2.0标准协议。标准OAuth 2.0协议有助于简化客户端侧应用程序的开发。OAuth 2.0可让您在无需用户参与的情况下更新访问令牌。
已授权用户的数据可存储在以下地方:
- 艾克索拉存储中。请参阅艾克索拉登录管理器入门指南进行设置。
- PlayFab数据库中。请参阅PlayFab存储方法详解进行设置。
- 自定义存储中。请参阅自定义存储方法详解进行设置。
通过支付中心访问令牌认证
常规流程
您的客户端与艾克索拉服务器间的交互过程如下:- 您的客户端向您的服务器发送认证请求。
- 您的服务器向艾克索拉服务器请求认证令牌并向其发送包含
project_id/merchant_id
和api_key
参数的头。 - 艾克索拉服务器返回支付中心访问令牌。
- 您的服务器将支付中心访问令牌传入您的客户端。
- 返回的支付中心访问令牌在In-Game Store API及生成商店界面中用作进行认证的授权令牌。
获取支付中心访问令牌
在应用程序后端,请实现通过HTTP POST请求来获取支付中心访问令牌的方法。
艾克索拉API使用基本HTTP 认证。请求必须包含Authorization: Basic <your_authorization_basic_key>
头,其中<your_authorization_basic_key>
是按照Base64标准加密的商户ID: API密钥对。请前往发布商帐户找到这些参数:
- 商户ID在以下位置显示:
- 在公司设置 > 公司部分。
- 在发布商帐户任意页面的浏览器地址栏的URL中。URL的格式如下:
https://publisher.xsolla.com/<merchant ID>/<Publisher Account section>
。
- API密钥仅在创建它时在发布商帐户中显示一次,必须存储在己侧。您可以在以下部分中创建新的密钥:
- 公司设置 > API密钥
- 项目设置 > API密钥
关于使用API密钥的详细信息,请参阅API参考。
关于密钥的建议:
- 请在己侧保存生成的API密钥。您仅会在创建API密钥时在发布商帐户中看见它一次。
- 请妥善保管API不被泄露。它提供对您的个人帐户及您在发布商帐户中项目的访问权限。
- API密钥必须存储在您的服务器上,切勿保存在代码或前端中。
如果所需API调用不包含project_id
路径参数,请使用在您公司的所有项目中都有效的API密钥来设置授权。
HTTP请求:
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
要获取令牌,请将以下参数传入请求正文:
参数 | 类型 | 描述 |
---|---|---|
settings | object | 带有自定义项目设置的对象。 |
settings.project_id | integer | 游戏的艾克索拉ID。可在发布商帐户中项目名称的旁边找到。 必需。 |
user | object | 带用户相关数据的对象。 |
user.id | object | 授权系统中的用户ID(对象)。 |
user.id.value | string | 用户ID。 必需。 |
user.email | object | 用户邮箱(对象)。 |
user.email.value | string | 用户电子邮箱。必须符合RFC 822协议标准。 必需。 |
user.name | object | 带有用户昵称相关数据的对象。必需。 |
user.name.value | string | 用户昵称。 |
user.steam_id | object | 用户Steam ID(对象)。 |
user.steam_id.value | string | 用户Steam ID。如应用程序在Steam上发布,则为必需。 |
user.playfab_id | object | 用户PlayFab ID(对象)。 |
user.playfab_id.value | string | 用户PlayFab ID。如果应用程序使用PlayFab服务来发放商品,则为必需。 |
custom_parameters
、purchase
等),它们不能用来接收授权令牌。与游戏内商店和物品库交互时支付中心访问令牌的有效期是距上次调用艾克索拉API之后1小时。如要更改支付中心访问令牌的有效期,请联系您的客户成功经理或发送邮件至csm@xsolla.com。
实现令牌过期后重新获取支付中心访问令牌的逻辑。建议在后台获取新令牌,这样用户就无须重新登录应用程序。
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。