> For the complete documentation index, see [llms.txt](https://docs.allout.game/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allout.game/all-out-docs/docs-zh/bian-xian/in-game-products.md).

# 游戏内产品

消耗品和通行证的创建方式相似，但用途略有不同！

### 产品类型

#### 游戏通行证

使用游戏通行证来实现永久性一次性购买：

* 解锁管理员通行证
* 永久性强化/能力
* 购买房屋

#### 消耗品

将消耗品用于你希望玩家能够多次购买的商品：

* 生命药水
* 会随时间失效的增益效果
* 一次性的游戏内金币购买

### 创建商品

<figure><img src="https://866492016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzA8RGUKJ88fD0oXVALlz%2Fuploads%2Fgit-blob-c14e477cb11e87cac616ceb940669663e39b8081%2Fimage.png?alt=media" alt="Add Product form in the Monetization tab"><figcaption><p>要创建商品，请在游戏 Creator Portal 的“变现”选项卡中点击“+ 添加商品”按钮</p></figcaption></figure>

<figure><img src="https://866492016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzA8RGUKJ88fD0oXVALlz%2Fuploads%2Fgit-blob-e6392255f1c97f0c51da4ac8aeab7d7a8177ef4e%2Fimage.png?alt=media" alt="Product form with the consumable option clear"><figcaption><p>如果未勾选消耗品框，这将是一个“游戏通行证”</p></figcaption></figure>

{% hint style="warning" %}
上传商品图片目前仅限管理员。请在 [开发者支持](/all-out-docs/docs-zh/quan-li-yi-fu/developer-support.md) 联系以上传缩略图
{% endhint %}

### 了解商品列表

变现页面会显示你在所选日期范围内的商品及其活动：

* 商品名称、价格和 ID。复制商品 ID 以在你的 [购买代码](/all-out-docs/docs-zh/he-xin-yin-qing-gai-nian/purchasing-product-apis.md).
* 销售和 Spark 消费历史。
* **可计入收益提现资格** 和 **不符合资格** Spark 消费。只有符合资格的部分会计入游戏的提现余额。
* **发放失败**，这样你就可以找到那些游戏内奖励仍需发放的购买记录。

该 **游戏 Spark 余额** 显示在退款和之前提现后，你剩余的已跟踪合格收益。它独立于报告的日期筛选器，

选择 **提现** 将符合资格的收益转移给创建者或当前编辑者。接收者将获得 70%，并向下取整到整数个 Spark。若要按 1 美元兑 100 Spark 的汇率将收到的 Spark 兑换成现金，请联系 All Out 团队。另见 [Spark 提现](/all-out-docs/docs-zh/bian-xian/spark-withdrawals.md) 了解费用、权限、退款和提现详情。

#### 购买处理程序 / 发放失败

当用户在你的游戏中购买商品时，我们会运行 `ao_purchase_handler` 函数，你在游戏代码中定义的那个。

你的购买处理程序通常会根据玩家购买的商品 ID 向其发放物品或功能。仅在发放成功后返回 `true` 。

如果你的购买处理程序失败——例如，他们的背包已满，而你没有处理这种情况——则返回 `false`。这将计为“发放失败”，并显示在 Creator Portal 的商品页面中，以便你修复问题。

发放失败将 **在玩家每次加入时自动重试，直到成功。** 处理程序必须能够安全地再次运行，并且在返回之前不得部分发放奖励 `false`.

如果你的购买处理程序已成功，但由于游戏漏洞或其他原因，用户丢失了该物品，你可以 **重新运行** 通过在 [编辑/查看玩家数据](/all-out-docs/docs-zh/shu-ju-yu-chi-jiu-hua/editing-viewing-player-data.md) “购买”部分中将该购买标记为未发放来运行该用户的购买处理程序。首先确认重新运行处理程序不会重复发放奖励。

要在不花费 Spark 的情况下测试你的购买处理程序，请在从编辑器启动的游戏中购买 [测试购买](/all-out-docs/docs-zh/he-xin-yin-qing-gai-nian/purchasing-product-apis.md#testing-purchases).
