Buy Button

Buy Button是一款数字商品销售综合解决方案。

Note: 如已在使用艾克索拉产品并希望将其与Buy Button集成,请联系您的帐户经理。

运行机制

步骤1

步骤2

步骤3

用户流程

集成过程

要集成Buy Button,请执行以下操作:

  1. 注册艾克索拉发布商帐户。
  2. 创建项目。
  3. 选择营收方案。
  4. 选择商品销售方案。
  5. 设置Webhook。

Note: 本指南介绍快速使用本解决方案所需的最低设置。如有任何问题,请联系您的帐户经理。

创建项目

  1. 转到项目,然后单击创建新项目
  2. 在设置模式下:
    1. 指定webhook URL。
    2. 生成用于项目webhook签名的密钥。

营收方案

虚拟货币

虚拟货币功能选项允许游戏开发者销售游戏货币。主要功能包括:

  • 销售游戏货币套餐
  • 进行推广活动
  • 管理游戏货币用户余额
  • 自动检测用户的币种和国家/地区

设置

  1. 打开“虚拟货币”设置,然后配置以下参数:
    • 名称
    • 单价
    • 图像
  2. 根据需求创建虚拟货币套餐,并设置以下参数:
    • 价格
    • 图像
  3. 在商店中打开套餐显示。

高级诀窍

以下高级诀窍可帮助您使用虚拟货币的一些高级功能:

虚拟物品

虚拟物品功能选项支持以真实或虚拟货币为计价形式来销售游戏内容。主要功能包括:

  • 以真实或虚拟货币的形式设置价格
  • 设置包含一个或多个层级的目录
  • 管理内容访问权限。例如,您可以设置某个物品只允许达到一定等级的用户购买。
  • 配置物品显示的简短描述和详细描述
  • 进行推广活动
  • 管理游戏货币用户余额
  • 自动检测用户的币种和国家/地区

设置

  1. 打开“虚拟物品”设置。
  2. 填写商店目录:
    1. 创建物品组
    2. 创建物品并指定以下字段:
      • 该物品所属的一个或多个组
      • SKU
      • 名称和简短描述
      • 以真实货币和虚拟货币表示的价格
      • 图像
  3. 在商店中打开组显示。

高级诀窍

以下高级诀窍可帮助您使用虚拟物品的一些高级功能:

游戏密钥

游戏密钥解决方案可让合作伙伴直接在其游戏网站上销售游戏密钥、游戏编译版本和分发包。具体是通过直接链接小组件通过API方法集成的商店UI实现。主要功能:

  • 选择通过其分发密钥和分发包的DRM平台
  • 为不同DRM平台设置不同售价
  • 预订

设置

设置模块:

  1. 打开 游戏密钥 ,然后单击 新建套餐
  2. 配置套餐参数:
    • SKU — 唯一标识符
    • 游戏标题
    • 游戏的简短介绍
  3. 选择DRM和游戏平台。
  4. 为所选DRM平台配置价格。
  5. 为所选DRM平台上传密钥。

高级诀窍

以下高级诀窍可帮助您使用游戏密钥的一些高级功能:

销售商品

您可以通过直接链接小组件商店UI销售商品。

Info: 配置销售游戏密钥的直接链接时,YOUR-ITEM-TYPE参数的值取决于项目的商店管理方法。如果集成新商店管理方法开关设置为,则应将该参数的值传入新方法。

以下链接用于打开支付UI:

Copy
Full screen
Small screen
https://store.xsolla.com/pages/buy.php?type={YOUR-ITEM-TYPE}&project_id={YOU_PROJECT_ID}&sku={YOUR-ITEM-SKU}
发布商帐户发布商帐户将以下数据加入该链接:
  • YOUR-ITEM-TYPE — 商品类型:
    • 游戏 — digital_content(用于使用旧商店管理方法的项目)或unit(用于使用新商店管理方法的项目)
    • 实体商品 — physical_good
    • 虚拟物品 — virtual_item
    • 虚拟货币 — virtual_currency
    • 虚拟货币套餐或捆绑包 — bundle
  • YOUR-PROJECT-ID发布商帐户中的项目ID(您的项目 > 项目设置 > 常规设置 > 项目ID
  • YOUR-ITEM-SKU — 商品SKU

也可将以下额外参数传入链接:

  • 支付UI样式:主题(深色为dark参数,浅色为default参数)、大小及其他参数。在URL中指定ui_settings参数并传入具有Base64编码值的settings.ui JSON对象。以下为包含UI设置的URL示例:

Copy
Full screen
Small screen
https://store.xsolla.com/pages/buy.php?type={YOUR-ITEM-TYPE}&project_id={YOU_PROJECT_ID}&sku={YOUR-ITEM-SKU}&ui_settings=ewoJCQkic2l6ZSI6ICJzbWFsbCIsCgkJCSJ0aGVtZSI6ICJkYXJrIgoJCX0=
  • 用于传递用户数据的令牌。仅当向通过认证的用户销售商品时使用,且对销售虚拟物品和虚拟货币为必需。此令牌取决于[认证方式](/zh/doc/buy-button/#guides_buy_button_selling_items_authentication_settings)。包含令牌的URL示例:
Copy
Full screen
Small screen
https://store.xsolla.com/pages/buy.php?type={YOUR-ITEM-TYPE}&project_id={YOUR_PROJECT_ID}&sku={YOUR_ITEM_SKU}&xsolla_login_token={ACCESS_TOKEN}
  • 用于支付测试的mode=sandbox参数。可使用[测试银行卡](/zh/doc/pay-station/references/test-cards/)完成支付。测试URL示例:
Copy
Full screen
Small screen
https://store.xsolla.com/pages/buy.php?type={YOUR-ITEM-TYPE}&project_id={YOU_PROJECT_ID}&sku={YOUR-ITEM-SKU}&mode=sandbox

通过小组件销售

小组件是一个可在网站上实现的用于销售商品的脚本。您可在演示页面上查看小组件的示例。

Info: 配置销售游戏密钥的小组件时,YOUR-ITEM-TYPE参数的值取决于项目的商店管理方法。如果集成新商店管理方法开关设置为,则应将该参数的值传入新方法。
小组件的实现代码:
Copy
Full screen
Small screen
<script>
    var options = {
        project_id: "YOUR-PROJECT-ID",
        item_type: "YOUR-ITEM-TYPE",
        sku: "YOUR-ITEM-SKU",
        user: "ACCESS_TOKEN",
        widget_ui: {
            target_element: '#widget-example-element'
        }
    };
    var s = document.createElement('script');
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://cdn.xsolla.net/embed/buy-button/3.1.2/widget.min.js";
        s.addEventListener('load', function (e) {
          var widgetInstance = XBuyButtonWidget.create(options);
          }, false);
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(s);
</script>
将以下数据加入上述代码:
  • YOUR-PROJECT-ID发布商帐户中的项目ID(您的项目 > 项目设置 > 常规设置 > 项目ID
  • YOUR-ITEM-TYPE — 商品类型:
    • 游戏 — digital_content(用于使用旧商品管理方法的项目)unit(用于使用新商品管理方法的项目)
    • 实体商品 — physical_good
    • 虚拟物品 — virtual_item
    • 虚拟货币 — virtual_currency
    • 虚拟货币套餐或捆绑包 — bundle
  • YOUR-ITEM-SKU — 商品SKU
  • ACCESS_TOKEN — 用于传递用户数据的令牌。仅当向通过认证的用户销售商品时使用,且对销售虚拟物品和虚拟货币为必需。此令牌取决于认证方式

关于小组件配置的详细信息,请访问我们的GitHub

通过商店UI销售

要通过商店UI销售游戏密钥、虚拟物品和虚拟货币,可实现一个独立的web应用程序或实现一个游戏内商店UI。应使用Store API或在演示版本的基础上创建自己的商店来获取商品列表并进行处理。

基于Store API

您可通过集成Store API方法创建商店的前端部分:
  1. 获取虚拟物品、虚拟货币套餐游戏的商品列表。
  2. 购买商品:

选择合适的认证方式以便方法正常工作。

Note: 要通过Store API方法销售游戏,应在前端侧实现DRM的选择。将从获取游戏请求获得的items.unit_items.sku参数值作为SKU传入。

基于演示版本

可使用商店演示版本检查API功能。该代码已上传至GitHub。您可以以它为基础创建自己的版本。

认证设置

已认证和未认证的用户均可进行购买。

未认证的用户

您可以向未认证的用户销售游戏和实体商品,规则如下:
  • 使用无需令牌的直接链接或小组件销售单份游戏。
  • 传入唯一用户ID和邮箱地址以购物车形式销售多份游戏。
  • 使用快速购买方法销售未指定参数的单件实体商品。
  • 传入唯一用户ID以购物车的形式销售多件实体商品。

调用Store API方法x-unauthorized-id参数)时应在标题中使用数字或字符串形式的唯一用户ID。标识符在前端侧生成,例如通过标识符生成库生成。

邮箱地址和其他数据(用户名和ISO 3166-1 alpha-2标准下的国家/地区代码)使用Base64编码,并在调用获取支付令牌方法时作为x-user参数传入标题。

示例:

Copy
Full screen
Small screen
{
 "name": "John Smith" 
 "email": "test@test.com" 
 "country": "US" 
}
也可以将数据以对象形式传入bodyquery。 示例:
Copy
Full screen
Small screen
"user": {
 "name": "John Smith" 
 "email": "test@test.com" 
 "country": "US"
}

已认证的用户

用户认证有如下几种方式:
  1. 如集成了艾克索拉登录管理器,则请求通过艾克索拉登录管理器JWT令牌进行认证。
  2. 如使用自己的认证系统,则请求通过支付中心访问令牌进行认证。

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

  1. 按照[说明](/zh/doc/login/#guides_login_api_integration)在发布商帐户中设置一个项目。
  2. 实现认证方法回调:基于JSON Web Token或基于OAuth 2.0协议。
如果用户数据保存在艾克索拉存储中,请实现以下方法:

如果用户数据保存在PlayFab数据库中,请参考适用于PlayFab存储的高级诀窍。

如果用户数据保存在自定义存储中,请参考适用于自定义存储的高级诀窍。

设置通过支付中心访问令牌进行的认证

认证过程:

  1. 客户端发送认证请求至您的服务器。
  2. 您的服务器向艾克索拉服务器传入Merchant IDAPI key并请求access_token
  3. 艾克索拉服务器发送access_token至您的服务器。
  4. 您的服务器发送access_token至客户端。

返回的access_token用作认证令牌,以认证游戏客户端发送的请求。

设置Webhook

实现以下Webhook:

通过发送不带消息正文的HTTP代码204来确认收到Webhook。关于Webhook的详细信息及示例,请参阅API参考

Note: 设置Webhook后,请打开支付中心设置,并将结账设置为

促销选项

优惠券

优惠券功能允许合作伙伴创建优惠券活动,优惠码可由合作伙伴上传或在发布商帐户中生成。用户通过优惠券可获得虚拟货币、虚拟物品或订阅计划的试用权限。您可自定义优惠券兑换数量及有效期(如有)。

请参阅高级诀窍

标签

标签功能允许合作伙伴为虚拟物品及虚拟货币套餐促销添加标签。例如,"Best Value"。

请参阅高级诀窍

奖励

奖励功能支持在用户购买后对其发放奖励。奖励可以是以下任意内容:

  • 虚拟货币
  • 订阅的试用权限
  • 虚拟物品
  • 游戏
  • 实体商品(如游戏周边)

请参阅高级诀窍

高级诀窍

以下高级诀窍可帮助您使用Buy Button的一些高级功能:

教程