---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/games/doc/en/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/hi/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/ko/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/ru/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/tr/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/vi/sdk/construct-3/in-game-purchases.md
  - https://yandex.com/dev/games/doc/zh/sdk/construct-3/in-game-purchases.md
  - href: zh/sdk/construct-3/in-game-purchases.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/games/doc/zh/llms.txt

# 应用内购买

<!-- source: zh/_includes/script-common.md -->
<!-- source: zh/_includes/script/index-js.md -->

<!-- endsource: zh/_includes/script/index-js.md -->

<!-- source: zh/_includes/script/requirements-js.md -->

<!-- endsource: zh/_includes/script/requirements-js.md -->

<!-- source: zh/_includes/script/image-modal-js.md -->

<!-- endsource: zh/_includes/script/image-modal-js.md -->
<!-- endsource: zh/_includes/script-common.md -->

您可以通过为用户提供在游戏中进行购买的机会来获取收益。例如，为通过关卡提供额外时间或为游戏角色提供配件。

为此：

- 在 Yandex Games 开发人员控制台中[连接应用内购买](https://yandex.com/dev/games/doc/zh/console/purchases.md#connect)。
- 在 SDK 中配置购买功能。



## 平台货币 {#portal-currency}

Yan 是 Yandex Games 平台用于支付应用内购买的平台货币。Yan 存储在玩家的统一余额中（适用于所有游戏），可以通过银行卡充值。Yan 对卢布的汇率是动态的。

{% note info %}

对于国际支付，Yan 对货币的汇率将取决于玩家所在国家。

{% endnote %}

可以在以下位置充值余额：

- 在目录顶部；
- 在玩家的个人资料中；
- 在游戏内购买过程中。

用户还可以通过参与促销活动或购买固定包获得 Yan 作为奖励。

无论是在 Yandex 上已授权的用户还是未授权的用户都可以进行应用内购买。用户可以在游戏过程中授权，包括在进行购买的那一刻。

由于引入平台货币，向开发者支付许可费的顺序和条件将不会改变。



## 连接要求 {#enable}

添加购买并发布游戏草稿后，请发送电子邮件至 [games-partners@yandex-team.com](mailto:games-partners@yandex-team.com){.external}，请求连接购买功能。在邮件中，请务必注明游戏名称和标识符 (ID)。

收到确认购买已允许的回复邮件后，您就可以配置和测试购买功能了。



## 购买流程 {#purchase}

您可以使用 **Initialize purchase** 方法激活应用内购买流程，使用以下参数：

#|
|| **参数** | **类型** | **描述** ||
|| **ID** | `string` | 目录中的产品唯一标识符。 ||
|| **Payload** | `string` | 随购买一起发送的可选数据。 ||
|#

当玩家成功完成购买后，触发器 **Specific product purchase success** 和 **On any purchase success** 将会激活。

但是，如果玩家未完成购买并关闭窗口，则触发器 **Specific product purchase error** 和 **On any purchase error** 将会激活。

上述触发器可让您访问用于处理成功或失败购买的表达式：

![](../../_images/construct-3/in-game-purchases/purchase.webp)



## 购买处理 {#process}

有两种类型的购买：

- 永久性购买，通常只购买一次；
- 消耗性购买，可多次购买。

对于处理这两种类型的购买，我们建议使用 **For each purchase** 循环，它可以访问 **Purchases** 列表中带有 **in purchases list** 后缀的表达式。


### 永久性购买（关闭广告） {#constant}

永久性购买的处理逻辑：

- 成功购买后，关闭广告。
- 每次游戏启动时，检查购买是否已激活，如果已激活，则关闭广告。

![](../../_images/construct-3/in-game-purchases/non-consumable-purchase.webp)


### 消耗性购买（游戏内货币） {#consumable}

消耗性购买的处理逻辑：

- 成功购买后 —— 使用 **Consume purchase** 方法处理购买，并增加游戏内货币。
- 每次游戏启动时，检查购买是否仍然存在，如果存在，则使用 **Consume purchase** 方法处理购买，并增加游戏内货币。

![](../../_images/construct-3/in-game-purchases/consumable-purchase.webp)



## 产品目录 {#catalog}

要处理目录中的产品，请使用带有 **Purchases** 列表中 **in catalog** 后缀的表达式的 **For each product in catalog** 循环。

![](../../_images/construct-3/in-game-purchases/for-each-in-catalog.webp)


---


<!-- source: zh/_includes/button-git.md -->
<a href="https://github.com/yandex-games-plugins/construct3">
  <span class="button">存储库</span>
</a>
<!-- endsource: zh/_includes/button-git.md -->
