虚拟物品

运行机制

虚拟物品是可通过销售它获取真实货币或虚拟货币的游戏中内容。

主要功能:

价格配置功能:

  • 一个物品可同时拥有用真实货币和虚拟货币表示的价格。
  • 可设置多种真实货币或虚拟货币下的价格。该情况下请确保选择一种默认货币。
  • 可以在不指定真实或虚拟货币价格的情况下创建物品。如此类物品在商店中显示,则对用户以免费形式提供。

价格配置限制:

  • 不能创建价格为0的物品。

虚拟物品有3种类型:

消耗性虚拟物品

消耗品是物品库中可大量拥有及多次购买的物品。用户消耗该物品时其数量会减少。

主要功能:

  • 在物品库中补充该物品的数量。
  • 在用户物品库中存储同一物品的多个实例。
  • 可在用户端侧消耗。

示例:炸弹、子弹等。

非消耗性虚拟物品

非消耗品是物品库中只能获得或购买一次的物品。

主要功能:

  • 用户在物品库中只能拥有一个单位的该物品。
  • 在用户端侧消耗该物品时不会从物品库中消失。只能通过服务器方法撤销它。

示例:对地点的访问权限、状态、饰品、预装的DLC、手机游戏的去广告权限等。

时效性商品

时效性商品是一种单次购买。到期之后用户需要重新购买。

主要功能:

  • 到期后失效。
  • 用户重新购买订阅后激活。

示例:Battle PassSeason Pass、游戏内饰品、物品或附加内容的暂时使用权。

详细信息请参阅时效性商品高级诀窍。

限制物品可购买的数量

您可以限制物品的购买次数。例如可以限制:

  • 单个用户可购的物品数量。
  • 仅可购买一次的新人物品。

如果用户已达到指定的数量限制,该物品将不在目录中显示。

您可以显示物品的最大可购数量以及该用户的剩余物品可购数量。

要在发布商帐户中创建物品时设置购买数量限制,请将限制单个用户可购买此物品的次数开关设置为,并指定物品的可购次数。

您可以使用虚拟物品和货币方法组中的目录子部分下的方法获取物品的信息。

在响应中,除虚拟物品的信息之外,还将收到以下信息:

  • 单个用户物品的最大可购数量。
  • 该用户的剩余物品可购数量。

关于如何设置或更新限制的更多信息,请参阅用户限制说明。

注:

对于未授权用户,将始终显示其可购买的最大物品数量。要显示用户剩余可购买的物品数量(取决于当前限制),使用虚拟物品和货币方法组目录子部分下的方法请求物品目录时,请传入用户授权数据。

要正确显示用户可购的物品数量,需配置身份认证

响应示例:
Copy
Full screen
Small screen

{
  "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
      },
}
注:

艾克索拉会确保不超过购买限制数并阻止用户购买超过设定限制的物品。

打开支付界面并支付某个物品后,所有包含该物品的未支付订单将失效。

示例:假设某个物品有购买数量限制,在下单之前,用户可以在多个浏览器选项卡中打开该物品的支付表单。这样会自动为同一个物品创建多个订单。在某个选项卡中购买了该物品后,艾克索拉将自动让该物品的所有其他未付订单失效。

限制物品在商店中的显示时间

您可以设置物品在商店中的显示时间,以实现以下目的:
  • 保持目录与某段时间的相关性,例如节假日促销期间
  • 提前创建物品但不在目录中显示
  • 通过在物品旁边显示计时器,激励用户购买
注:
使用建站器创建目录界面时,会自动显示计时器。在自己的界面中创建目录时,需实现计时器的显示。
要通过发布商帐户为某个物品设置在商店中的显示时间限制,请选择时间段,然后指定时区及开始和结束日期。如不希望指定物品的显示结束日期,请勾选无结束日期复选框。
注:
创建虚拟物品、虚拟货币或虚拟货币套餐后,您可以为该商品设置相应状态,使其可销售、不可销售或一定情况下可销售。
要通过API设置在商店中显示物品的时间限制,请在创建虚拟物品更新虚拟物品 API调用中传入以下参数:
  • periods[0].date_from,包含YYYY-MM-DDThh:mm:ss±TMZ格式的商品显示开始日期和时间,其中TMZhh:mm GMT格式的时区
  • periods[0].date_until,包含YYYY-MM-DDThh:mm:ss±TMZ格式的商品显示结束日期和时间,其中TMZhh:mm GMT格式的时区。如不要指定商品显示结束时间,请传入null

可为商店中的物品设置多个显示时间段。方法是在创建虚拟物品更新虚拟物品方法中传入一个包含所有时间段开始和结束时间的对象数组。

示例

Copy
Full screen
Small screen
    "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"
          }
    ]
    

    适用对象

    • 希望通过在游戏中添加虚拟货币并通过该货币销售虚拟物品以建立游戏经济或获得营收的合作伙伴。
    • 集成了游戏内商店并希望设置虚拟物品这一新产品类型的合作伙伴。

    如何获取

    集成过程

    1. 配置虚拟物品和虚拟物品组
    2. 配置区域限制和区域价格

    配置虚拟物品和虚拟物品组

    要设置虚拟物品,需配置虚拟物品组。组可以让您有多级目录。没有指定组的物品将添加到Ungrouped组。

    要设置虚拟物品和虚拟物品组,可:

    通过发布商帐户进行配置

    通过API调用进行配置

    请使用Virtual Items & CurrencyAdmin子部分下的API调用来设置虚拟物品。
    注意
    Admin子部分下的方法并非用于在前端创建商店中的目录,而是用于着陆页、网页商城和游戏内逻辑。

    用于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密钥必须存储在您的服务器上,切勿保存在代码或前端中。

    请使用Virtual Items & CurrencyCatalog子部分下的API调用在客户端侧获取虚拟物品目录。这些调用不需要基本授权。

    请使用Get virtual items list API调用来获取未分组的物品完整列表。要从固定组获取物品列表,请向Get items list by specified group调用传入external_id参数。

    配置区域限制和区域价格

    要为虚拟物品设置区域限制,请向Create itemUpdate item调用传入包含物品可售区域标识符的对象数组。
    Copy
    Full screen
    Small screen
    "regions": [{
         “id”: “123”
      }, {
         “id”: “456”
      }
    ]
    

    要为虚拟物品设置区域价格,请向Create itemUpdate item调用传入包含区域价格设置的对象数组。

    Copy
    Full screen
    Small screen
    "regional_prices": [{
         “region_id”: “123”,
         “country_iso”: “CHN”,
         “amount”: 40,
         “currency_iso”: “CNY”,
         “is_default”: true,
         “is_enabled”: true
      }
    ]
    
    注:
    应预先在项目中配置区域。请联系您的客户成功经理或发送邮件至csm@xsolla.com进行配置。
    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    为此页面评分
    为此页面评分
    我们还有其他可改进之处吗?

    不想回答

    感谢您的反馈!
    上次更新时间: 2023年10月10日

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

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