虚拟物品
运行机制
虚拟物品是可通过销售它获取真实货币或虚拟货币的游戏中内容。
主要功能:
- 设置真实货币和虚拟货币下的价格。
- 配置多级目录。
- 自动确定用户的币种和国家/地区。
- 限制物品可购买的数量。
- 限制物品在商店中的显示时间。
- 免费物品。
价格配置功能:
- 一个物品可同时拥有用真实货币和虚拟货币表示的价格。
- 可设置多种真实货币或虚拟货币下的价格。该情况下请确保选择一种默认货币。
- 可以在不指定真实或虚拟货币价格的情况下创建物品。如此类物品在商店中显示,则对用户以免费形式提供。
价格配置限制:
- 不能创建价格为0的物品。
虚拟物品有3种类型:
消耗性虚拟物品
消耗品是物品库中可大量拥有及多次购买的物品。用户消耗该物品时其数量会减少。
主要功能:
- 在物品库中补充该物品的数量。
- 在用户物品库中存储同一物品的多个实例。
- 可在用户端侧消耗。
示例:炸弹、子弹等。
非消耗性虚拟物品
非消耗品是物品库中只能获得或购买一次的物品。
主要功能:
- 用户在物品库中只能拥有一个单位的该物品。
- 在用户端侧消耗该物品时不会从物品库中消失。只能通过服务器方法撤销它。
示例:对地点的访问权限、状态、饰品、预装的
时效性商品
时效性商品是一种单次购买。到期之后用户需要重新购买。
主要功能:
- 到期后失效。
- 用户重新购买订阅后激活。
示例:
详细信息请参阅时效性商品高级诀窍。
限制物品可购买的数量
您可以限制物品的购买次数。例如可以限制:
- 单个用户可购的物品数量。
- 仅可购买一次的新人物品。
如果用户已达到指定的数量限制,该物品将不在目录中显示。
您可以显示物品的最大可购数量以及该用户的剩余物品可购数量。
要在发布商帐户中创建物品时设置购买数量限制,请将限制单个用户可购买此物品的次数开关设置为开,并指定物品的可购次数。
您可以使用虚拟物品和货币方法组中的目录子部分下的方法获取物品的信息。
在响应中,除虚拟物品的信息之外,还将收到以下信息:
- 单个用户物品的最大可购数量。
- 该用户的剩余物品可购数量。
关于如何设置或更新限制的更多信息,请参阅用户限制说明。
- json
{
"items": [
{
"sku": "big_rocket",
"name": "Big Rocket",
"groups": [
{
"external_id": "accessory",
"name": "Accessory"
}
],
"attributes": [
{
"external_id": "stack_size",
"name": "Stack size",
"values": [
{
"external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
"value": "5"
}
]
}
],
"type": "virtual_good",
"description": "Big Rocket - description",
"image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
"is_free": false,
"price": {
"amount": "100.99",
"amount_without_discount": "100.99",
"currency": "USD"
},
"virtual_prices": [
{
"amount": 100,
"sku": "vc_test",
"is_default": true,
"amount_without_discount": 100,
"image_url": "http://image.png",
"name": "SHOTGUN FOR TRUE RAIDERS",
"type": "virtual_currency",
"description": "description"
}
],
"can_be_bought": true,
"inventory_options": {
"consumable": {
"usages_count": 1
},
"expiration_period": {
"type": "day",
"value": 1
}
},
"virtual_item_type": "non_renewing_subscription",
"limits": {
"per_user": {
"total": 5,
"available": 5
},
"per_item": null
},
}
艾克索拉会确保不超过购买限制数并阻止用户购买超过设定限制的物品。
打开支付界面并支付某个物品后,所有包含该物品的未支付订单将失效。
示例:假设某个物品有购买数量限制,在下单之前,用户可以在多个浏览器选项卡中打开该物品的支付表单。这样会自动为同一个物品创建多个订单。在某个选项卡中购买了该物品后,艾克索拉将自动让该物品的所有其他未付订单失效。
限制物品在商店中的显示时间
您可以设置物品在商店中的显示时间,以实现以下目的:- 保持目录与某段时间的相关性,例如节假日促销期间
- 提前创建物品但不在目录中显示
- 通过在物品旁边显示计时器,激励用户购买
periods[0].date_from
,包含YYYY-MM-DDThh:mm:ss±TMZ
格式的商品显示开始日期和时间,其中TMZ
是hh:mm
GMT格式的时区periods[0].date_until
,包含YYYY-MM-DDThh:mm:ss±TMZ
格式的商品显示结束日期和时间,其中TMZ
是hh:mm
GMT格式的时区。如不要指定商品显示结束时间,请传入null
可为商店中的物品设置多个显示时间段。方法是在创建虚拟物品或更新虚拟物品方法中传入一个包含所有时间段开始和结束时间的对象数组。
示例:
"periods": [
{
"date_from": "2022-06-10T14:00:00+03:00",
"date_until": "2022-06-30T14:00:00+03:00"
},
{
"date_from": "2022-07-10T14:00:00+03:00",
"date_until": "2022-07-30T14:00:00+03:00"
},
{
"date_from": "2022-08-10T14:00:00+03:00",
"date_until": "2022-08-30T14:00:00+03:00"
}
]
适用对象
- 希望通过在游戏中添加虚拟货币并通过该货币销售虚拟物品以建立游戏经济或获得营收的合作伙伴。
- 集成了游戏内商店并希望设置虚拟物品这一新产品类型的合作伙伴。
如何获取
集成过程
配置虚拟物品和虚拟物品组
要设置虚拟物品,需配置虚拟物品组。组可以让您有多级目录。没有指定组的物品将添加到
要设置虚拟物品和虚拟物品组,可:
通过发布商帐户进行配置
通过API调用进行配置
请使用虚拟物品和货币组管理子部分下的API调用来设置虚拟物品。用于API调用的基本认证。传入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密钥来设置授权。
请使用虚拟物品和货币组目录子部分下的API调用在客户端侧获取虚拟物品目录。这些调用不需要基本授权。
请使用获取虚拟物品列表API调用来获取未分组的物品完整列表。要从固定组获取物品列表,请向按指定组获取商品列表调用传入external_id
参数。
配置区域限制和区域价格
要为虚拟物品设置区域限制,请向创建虚拟物品或更新虚拟物品调用传入包含物品可售区域标识符的对象数组。- http
"regions": [{
“id”: “123”
}, {
“id”: “456”
}
]
要为虚拟物品设置区域价格,请向创建虚拟物品或更新虚拟物品调用传入包含区域价格设置的对象数组。
- http
"regional_prices": [{
“region_id”: “123”,
“country_iso”: “CHN”,
“amount”: 40,
“currency_iso”: “CNY”,
“is_default”: true,
“is_enabled”: true
}
]
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。