我如何获得应用内购买以在 Google Play 上显示给播放器

问题描述

很抱歉,如果有人问过这个问题,但我进行了搜索并找不到任何东西。这可能是我表达它的方式。

所以我在 Unity 中制作了一个带有应用内购买的手机游戏。我已经成功地做到了这一点,它将拿走我的钱并告诉我我买了什么。但是我现在缺乏知识的地方是如何将这笔钱返还给玩家。例如,您为 10 个硬币支付 0.99 美元,现在我想向玩家展示这 10 个硬币。是否有我可以执行的服务器处理的 API 调用显示他们的 10 个硬币?如果不是,我是否会在使用 PlayerPrefs 或二进制保存的代码中处理它?感谢您阅读本文,非常感谢您的帮助。

解决方法

如果其他人有同样的问题,这里有一个更具体的答案。

Google 应用内购买不会存储您的应用内购买。它们仅存储各种数据,例如Product NameProduct descriptionProduct IDProduct PriceLast UpdatedStatus。所有这些数据都可以在 Google Play Console 标签下的 In-app products 中编辑。

使用 Unity IAP,您可以轻松集成许多商店购买功能,例如 Google。在正确设置您的应用程序使其至少在 Alpha Stage 发布后,它已经过 Google 验证,您已经设置了一个 Monetization account 并且您已经上传了一个带有 {{1} },您将能够添加应用内购买产品。

在控制台中设置产品后,您可以按照 Unity 的教程开始实施 IAP。当用户确实购买了产品时,将会有关于他们购买的商品的 billing permissions 的回调。

在购买产品时,有多种类型的产品,但在这篇文章中,我只会谈论 Product IDConsumable 购买(其他都是基于订阅的)。 Non-Consumable 产品是购买后可消费并可回购的产品。将它们视为游戏中可以耗尽的宝石、能量或其他资源。 Consumable 产品是那些不能用完并且始终为玩家准备的产品。此产品的示例可以是去除广告、新游戏关卡等。

特别是对于 Google,receipts 保留在 Google 的一端。当用户重新登录时,如果用户有收据,Unity IAP 将自动恢复属于 Non-Consumable 类别的所有购买。至于 Non-Consumable 产品,您需要跟踪它们。我个人会跟踪两者以防万一,我不想让用户丢失任何购买的商品。但是,Google 会跟踪所有收据,因此如果您愿意,您可以自己查看并验证购买。

要保持数据的持久性,您需要实施 Save/Load 系统。最简单的实现是使用 PlayerPrefs,但它们非常不安全。本地设备上的任何数据都容易受到攻击者的更改,因为他们可以完全控制自己的数据。通过使用加密、代码阻塞和内存跟踪,您可以做很多事情来保护本地数据,但是一个足够优秀的黑客可以简单地反编译您的 APK 并弄清楚发生了什么。如果您真的想确保数据安全,请使用服务器。