如何让应用内购买项目在 Google Play 上显示给播放器
Posted
技术标签:
【中文标题】如何让应用内购买项目在 Google Play 上显示给播放器【英文标题】:How do I get in-app purchases to show up to the player on Google Play 【发布时间】:2021-07-17 02:21:34 【问题描述】:很抱歉,如果有人问过这个问题,但我进行了搜索,但找不到任何东西。这可能是我措辞的方式。
所以我正在 Unity 中制作一款带有应用内购买的手机游戏。我已经成功地做到了,它会拿走我的钱并告诉我我买了什么。但我现在缺乏知识的地方是如何将这笔金额返还给玩家。例如,您为 10 个硬币支付 0.99,现在我想向玩家展示这 10 个硬币。是否有一个 API 调用可以让服务器处理以显示他们的 10 个硬币?如果不是,我会用 PlayerPrefs 或二进制保存在代码中处理它吗?感谢您阅读本文,非常感谢您提供任何帮助。
【问题讨论】:
你的问题有点不清楚。应用内购买的标题和描述存储在他们的服务器上。删除广告等1次购买(非消耗品)的实际购买被保存,但宝石等可以多次购买的购买(消耗品)则不保存。最佳实践是以某种形式在本地存储他们的所有数据是的。 Google 只知道您有一些成本为 [$some Amount] 且 ID [yourID] 具有标题 [name] 和描述 [description] 的应用内购买。 @TEEBQNE 好的,所以我的消耗量 10 个硬币没有存储在 Google 上,而只是交易。实际的 10 枚硬币是我必须在最后编码的东西,而不是从服务器中取出。如果是这种情况,应用内购买的公司如何处理实际的硬币数量? PlayerPrefs真的是可变的,所以它必须是二进制保存? Google 只是处理发生的交易,然后您需要决定之后会发生什么。如果您的意思是 PlayerPrefs 很容易更改,那么是的。较大的公司将所有重要数据存储在服务器上,几乎从不信任本地玩家数据。没有保证可以在本地保护任何数据的方法。如果您的问题是如何在本地保存这些数据,那么可以选择 Player Prefs。 非常感谢您的回复。这回答了我的问题。 很高兴我能帮上忙。稍后我可能会输入一个更正式的答案,以便问题得到答案。 【参考方案1】:如果其他人有同样的问题,这里是对问题的更具体的答案。
Google 应用内购买项目不会存储您的应用内购买项目。它们仅存储Product Name
、Product description
、Product ID
、Product Price
、Last Updated
和Status
等各种数据。所有这些数据都可以在In-app products
标签下的Google Play Console
中进行编辑。
使用 Unity IAP,您可以轻松集成许多商店购买功能,例如 Google。正确设置您的应用程序后,至少在发布的Alpha Stage
中,它已通过Google 验证,您已设置Monetization account
并已上传带有billing permissions
的APK,您将能够添加应用内购买产品。
在控制台中设置好产品后,您可以按照 Unity 的教程开始实施 IAP。当用户购买产品时,将通过Product ID
回调他们购买的产品。
购买商品的时候,商品种类繁多,但是这篇文章我只讲Consumable
和Non-Consumable
购买(其他都是订阅式)。 Consumable
产品是购买后可以消费,可以回购的产品。将它们视为游戏中的宝石、能量或其他可以耗尽的资源。 Non-Consumable
产品是那些不能用完并且永远为玩家提供的产品。此产品的示例可以是删除广告、新游戏关卡等。
专门针对 Google,receipts 保留在 Google 端。当用户重新登录时,如果用户有收据,Unity IAP 将自动恢复属于Non-Consumable
类别的所有购买。至于Consumable
产品,您需要跟踪它们。我个人会跟踪两者以防万一,我宁愿不让用户丢失任何购买的商品。不过,Google 确实会记录所有收据,因此如果您愿意,您可以自己查看这些收据并验证购买。
要保持数据持久性,您需要实现Save/Load 系统。最简单的实现是使用PlayerPrefs,但它们非常不安全。本地设备上的任何数据都容易受到攻击者的更改,因为他们可以完全控制自己的数据。您可以通过使用加密、代码阻塞和内存跟踪来保护本地数据,但足够优秀的黑客可以简单地反编译您的 APK 并找出发生了什么。如果您真的想保护您的数据安全,请使用服务器。
【讨论】:
以上是关于如何让应用内购买项目在 Google Play 上显示给播放器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中测试 Google Play 计费订阅(非应用内购买)
Google Play:使用来自不同国家/地区的设置测试应用内购买?
无法在 Google Play 开发者控制台中创建应用内购买
Google Play 应用内购买返回错误代码 -1008:null puchaseData 或 dataSignature