设置商品销售

有两个艾克索拉解决方案可用于游戏营收,即Buy Button(在游戏网站上销售商品)和游戏内商店(在游戏中销售商品)。

Buy Button让您可以用真实货币或虚拟货币为计价方式来销售以下商品:

  • 游戏密钥
  • 虚拟物品
  • 虚拟货币
  • 实体商品

游戏内商店让您可以用真实货币或虚拟货币为计价方式来销售以下商品:

  • 游戏内货币和货币套餐
  • 消耗品
  • 非消耗品
  • 时效性商品

您可以向未授权和已认证用户销售商品。

设置向未授权的用户销售商品

用户进行购买时受以下条件限制:

  • 未授权的用户不能使用权利系统
  • 支付方式和艾克索拉余额在艾克索拉支付中心不可用。

商品销售方式
一份游戏(游戏密钥)。使用直接链接或小组件。
多份游戏(游戏密钥)或购物车中的多个游戏。传入唯一用户ID和邮箱地址。邮箱地址和其他数据(用户名和ISO 3166-1 alpha-2标准下的国家/地区代码)使用Base64编码,并在调用获取支付令牌方法时作为x-user参数传入标题。
一个商品。使用一个商品的快速购买调用
购物车中的多个商品。传入唯一用户ID。唯一用户ID在调用In-Game Store & Buy Button API方法x-unauthorized-id参数)时以数字或字符串形式在标题中使用。标识符在前端侧生成,例如通过标识符生成库生成。

设置向已认证身份的用户销售商品

要管理用户对您的应用程序以及艾克索拉产品功能的访问权限,请设置用户认证系统。对此,您可以使用艾克索拉登录管理器实现自有认证系统

如果您已实现了自有认证系统而仅需要支付UI,可以生成支付中心访问令牌并在您的服务器上设置Webhook。

如果没有自己的服务器或希望使用现成解决方案,可为您的游戏内商店使用艾克索拉登录管理器。以下功能在艾克索拉侧执行:

  • 存储及管理目录
  • 管理结果
  • 存储区域价格的数据
  • 认证用户
  • 处理交易

通过艾克索拉登录管理器进行认证

艾克索拉登录管理器支持用于用户注册和认证的OAuth 2.0标准协议。标准OAuth 2.0协议有助于简化客户端侧应用程序的开发。OAuth 2.0可让您在无需用户参与的情况下更新访问令牌。

已授权用户的数据可存储在以下地方:

Note
用户数据包括真实货币余额(变化)、保存的银行卡、交易历史记录及订阅。

通过支付中心访问令牌认证

Note
如希望集成In-Game Store & Buy Button API方法,则推荐使用。

您的客户端与艾克索拉服务器间的交互过程如下:

  1. 您的客户端向您的服务器发送认证请求。
  2. 您的服务器向艾克索拉服务器请求认证令牌并向其发送包含project_id/merchant_idapi_key参数的
  3. 艾克索拉服务器返回支付中心访问令牌。
  4. 您的服务器将支付中心访问令牌传入您的客户端。
  5. 返回的支付中心访问令牌在游戏内商店和Buy Button API及生成商店界面中用作进行认证的授权令牌。

获取支付中心访问令牌

在应用程序后端,请实现通过HTTP POST请求来获取支付中心访问令牌的方法。

艾克索拉API使用基本HTTP认证。请求必须包含Authorization:Basic <your_authorization_basic_key>头,其中<your_authorization_basic_key>是按照Base64标准加密的merchant_id:api_key。您可以在发布商帐户中找到参数值:

  • 要查找merchant_id,请前往项目设置 > Webhooks > 商户ID部分。
  • 要查找api_key,请前往公司设置 > 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服务来发放商品,则为必需

请求和响应示例见API参考

Notice
请求中只能使用上面列表中的参数。请勿传入其他API调用参数(例如custom_parameterspurchase等),它们不能用来接收授权令牌。

与游戏内商店和物品库交互时支付中心访问令牌的有效期是距上次调用艾克索拉API之后1小时。如要更改支付中心访问令牌的有效期,请联系您的帐户经理。

实现令牌过期后重新获取支付中心访问令牌的逻辑。建议在后台获取新令牌,这样用户就无须重新登录应用程序。

您的进度
感谢您的反馈!
上次更新时间: 2021年11月18日

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

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!