免费商品
运行机制
免费商品是指用户无需花费虚拟货币或真实货币即可获得的商品。 免费商品适用于以下场景:
- 游戏内物品的销售 — 虚拟物品、虚拟货币套餐和捆绑包
- 通过游戏密钥销售游戏和DLC
- 在项目阶段成就或特殊日期(如周年纪念日)提供免费商品,奖励用户的忠诚度。
- 为已购买基础游戏的用户提供免费附加内容,作为忠诚奖励。
- 在网页商城中提供免费新手礼包,吸引新用户进入游戏。
设置免费商品
在发布商帐户中进行设置
注:
在配置商品之前,建议先创建组,以便对商品进行分类并管理它们在商店中的显示方式。
以下以虚拟物品为例说明免费商品的设置流程。
- 在发布商帐户的项目中,前往商品目录 > 全部商品部分。
- 单击添加,从下拉列表中选择虚拟物品。
- 指定以下参数:
- 图片(可选)。
- SKU。
- 捆绑包所属的一个或多个组。
- 名称。
- 描述(可选)。
- 在价格设置部分,选择免费物品。
- 如需限制可购买的物品数量,请打开限制单个用户可购买此物品的次数开关并输入所需数量。
- 要配置限制重置频率:
- 从下拉列表中选择周期:
- 每日。
- 每周。
- 每月。
- 自定义间隔 — 从捆绑包的显示开始日期起计算。
- 不刷新。
- 根据所选周期设置重置时间表。
- 从下拉列表中选择周期:
- 配置物品在商店中的显示方式:
- 选择状态。
- 设置显示时间限制(可选):指定时区以及时间段的开始和结束时间。如果不想指定商品显示的结束时间,请勾选无结束日期复选框。
- 配置物品属性(可选),使用以下选项之一:
- 单击创建物品。
通过API设置
要将商品设置为免费,请在调用以下管理 API时在请求正文中传入“is_free”: true:
limits,指定数量limits.recurrent_schedule,指定限制数重置频率
在目录中显示免费商品
免费商品在目录中的显示方式取决于实现方式,即通过建站器还是通过API实现。
通过建站器显示
要在您的网站上显示免费商品:
- 在商店部分的商品类型字段中,选择免费商品类型并指定其所属组(如适用)。
- 配置商品卡片布局。
- 完成所有必要更改并准备发布网站后:
- 在建站器右上角,单击发布。
- 勾选您要发布的页面。
- 单击发布。
注:
如果无法发布网站,请确保满足以下所有条件:
- 网站上没有空白区段(红色标记的部分)。
- 已签署与艾克索拉的许可协议。
- 主页已发布或已勾选待发布。主页发布前无法发布子页面。
注:
如果为免费商品配置了显示时间限制,当您使用建站器创建目录UI时,会自动显示可售倒计时器。当您在自定义UI中创建目录时,您需要在己侧实现该倒计时器。
通过API获取免费商品信息
如果您的目录通过API配置,可通过目录子部分中的以下调用返回免费商品数据:
向用户发放免费商品
包含免费商品的订单处理方式取决于购买过程中是否使用了购物车。 如果用户不使用购物车购买商品,请使用使用指定免费商品创建订单API调用。 如果用户使用购物车购买商品,可能出现以下情况:
- 如果用户的购物车同时包含付费和免费商品,请使用使用特定购物车中的所有商品创建订单或使用当前购物车中的所有商品创建订单API调用。此时用户需通过支付UI完成付款。
- 如果用户的购物车仅包含免费商品,请使用使用免费购物车创建订单或使用指定免费购物车创建订单API调用。此时无需使用支付UI。
在这两种情况下,艾克索拉都会发送订单成功支付Webhook,其中包含用于向用户发放商品的商品数据。对于免费商品,Webhook中的order.invoice_id参数设置为null。
免费商品订单对象示例:
Copy
- json
1{
2 "method": "POST",
3 "url": "https://mybestgame.com/xsolla/notification",
4 "body": {
5 "items": [
6 {
7 "sku": "gift_direct_game_reward-supercoin",
8 "type": "virtual_currency",
9 "is_pre_order": false,
10 "quantity": 500,
11 "amount": "0",
12 "promotions": [
13
14 ]
15 },
16 {
17 "sku": "package-500_supercoin",
18 "type": "bundle",
19 "is_pre_order": false,
20 "quantity": 1,
21 "amount": "0",
22 "promotions": [
23
24 ]
25 },
26 {
27 "sku": "xsolla-giveaway_offer_11_14_22",
28 "type": "bundle",
29 "is_pre_order": false,
30 "quantity": 1,
31 "amount": "0",
32 "promotions": [
33
34 ]
35 }
36 ],
37 "notification_type": "order_paid",
38 "order": {
39 "id": 12345678,
40 "mode": "default",
41 "currency_type": "unknown",
42 "currency": null,
43 "amount": "0",
44 "status": "paid",
45 "platform": "xsolla",
46 "comment": null,
47 "invoice_id": null,
48 "promotions": [
49
50 ]
51 },
52 "user": {
53 "external_id": "1234567812345678",
54 "email": null
55 }
56 },
57 "headers": {
58 "Authorization": "Signature 3b840ccefea111dcdfd111db1fdc6df969a3ec11",
59 "Accept": "application/json",
60 "Content-Type": "application/json"
61 },
62 "type": "webhook_payment",
63 "callback_parameters": {
64 "order_id": 12345678
65 }
66}
根据您的项目集成设置,商品将通过以下方式之一发放给用户:
- 如果已集成PlayFab,虚拟货币和商品将自动发放到用户的PlayFab物品库中。
- 如果使用自定义交付系统,所有虚拟物品和货币将在己侧发放。建议设置Webhook处理程序以在后端接收订单数据。必要的数据包含在订单成功支付Webhook中。
注:
游戏密钥将发送到用户的电子邮件或直接发送到权利系统。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。