android - 如何使用 Google 的应用内结算版本 3 实现游戏内货币

标签 android in-app-purchase billing android-billing

如标题所说,我应该如何使用 Google 最新的应用内结算 v3 实现货币系统。

基础知识: 我有货币。 这种货币是赚取或购买的。

货币会定期提供给玩家。

货币可以批量购买(1、5、10、20、50、100)或至少这是我想要的。

Google Play v3 强制您将消耗品的所有权详细信息存储在他们的服务器上。

您不能购买相同的元素,直到它被首先消耗,根据谷歌从所有权中移除,因此不再在您的游戏中拥有。

这提出了一些非常痛苦的问题需要解决......如果我理解正确的话。

您是否制作了大量“重复”的商店元素来处理玩家多次购买同一元素的能力(如果他想补货)?您可以制作可追踪的免费元素吗?

如果玩家购买 100 包,使用 99 包,然后卸载并转移到另一台设备怎么办?他会拿回所有 100。你是怎么处理的?

那么我应该如何管理购买的货币呢?任何人都可以建议任何体面的策略来处理这个问题吗?

谢谢, 沟壑

最佳答案

通过仅使用 inApp Billing api,您无法恢复消耗品,这似乎合乎逻辑(您无法恢复不存在的东西)。您只能恢复因 getPurchases() 而未被消费的项目。如果您希望能够恢复消耗品,您需要在您的应用程序中处理该部分,并使用一个服务器来跟踪谁购买了什么以及谁使用了什么。

事实上,您并不是在恢复购买,而是购买发生变化的状态:如果用户购买了 100 金币,当他换到另一部手机时,他想取回额外的金币,而不是购买的金币。

在每次操作后,您的应用程序应将用户状态发送到服务器(货币数量、级别、购买/使用的元素......)并在启动时取回所有内容。

请注意,如果您想防止作弊者,您的应用程序和服务器之间的通信必须是安全的。

在使用 inApp v3 之前,您无法购买其他元素,直到上一个元素被消耗掉。所以如果用户买了 100 金,他用了 99。如果他没有消耗,最后一个可以恢复:http://developer.android.com/google/play/billing/billing_reference.html#getPurchases

关于android - 如何使用 Google 的应用内结算版本 3 实现游戏内货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25382763/

相关文章:

安卓应用内支付安全问题

heroku - Heroku 的计费限制

android - 如何在操作栏中显示剪切、复制、全选和共享选项?

android - Android 中的 WebView 不显示网页样式

android - 应用内购买在 android 中显示消息 "you already own this item."

ios - 应用内购买 : SKPaymentTransactionStatePurchased

android - 应用内结算 (Android) 中的恢复交易如何运作?

Android 不均匀设计

android - 在 Framelayout 中相互重叠的两个布局之间滑动

iOS应用内购买自动续订订阅: how do we compute the renewal duration?