如何让应用内购买在 Google Play 上显示给玩家

How do I get in-app purchases to show up to the player on Google Play

很抱歉有人问过这个问题,但我进行了搜索但没有找到任何内容。这可能是我的措辞方式。

所以我正在 Unity 中制作一款包含应用内购买的手机游戏。我已经成功地完成了这项工作,它会拿走我的钱并告诉我我买了什么。但是我现在缺乏知识的地方是如何将这笔钱返还给玩家。例如,您为 10 个硬币支付 0.99,现在我想向玩家显示这 10 个硬币。是否有一个 API 调用可以让服务器处理以显示他们的 10 个硬币?如果不是,我会用 PlayerPrefs 或二进制保存在代码中处理吗?感谢您阅读本文,我们将不胜感激。

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

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

使用 Unity IAP 您可以轻松集成许多商店购买功能,例如 Google。在正确设置您的应用程序使其至少处于 Alpha Stage 版本后,它已通过 Google 验证,您已设置 Monetization account 并上传了一个 APK billing permissions,您将能够添加应用内购买产品。

在控制台中设置产品后,您可以按照 Unity 的教程开始实施 IAP。当用户确实购买了产品时,将会有一个回调,其中包含他们购买的商品的 Product ID

购买商品时,商品种类繁多,但对于这个post,我只说ConsumableNon-Consumable购买(其他都是订阅的). Consumable商品是指购买后可以消费,可以重复购买的商品。将它们视为游戏中可能会耗尽的宝石、能量或其他资源。 Non-Consumable 产品是那些用不完的,永远为玩家准备的。该产品的示例可以是去除广告、新游戏关卡等。

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

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