在 Android 应用中实现 In-App Billing 似乎是相当复杂的。我怎么能这样做? SDK 中的示例应用程序只有一个活动,这对于像我这样具有多个活动的应用程序来说过于简化了。
原文由 SZH 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Android 应用中实现 In-App Billing 似乎是相当复杂的。我怎么能这样做? SDK 中的示例应用程序只有一个活动,这对于像我这样具有多个活动的应用程序来说过于简化了。
原文由 SZH 发布,翻译遵循 CC BY-SA 4.0 许可协议
V3: 这是一个快速入门的教程。他正在使用来自谷歌示例(Trivial Drive)的帮助类……作为第一个“Hello Billing”很好..
原文由 Alexander Sidikov Pfeif 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
好吧,我将尝试解释我的经历。我不认为自己是这方面的专家,但几天我就崩溃了。
对于初学者来说,我很难理解示例和应用程序的工作流程。我认为最好从一个简单的示例开始,但是很难将代码分成小块并且不知道您是否破坏了任何东西。我将告诉您我拥有什么以及我从示例中更改了什么以使其起作用。
我有一个活动,我所有的购买都来自于此。它被称为临。
首先,您应该使用您的公共市场开发人员密钥更新您的安全类中的变量 base64EncodedPublicKey,否则您将看到一个不错的异常。
好吧,我将 Activity 绑定到 BillingService,如下所示:
这样,所有购买都与该服务对话,然后将 JSON 请求发送到市场。您可能认为购买是在同一瞬间进行的,但事实并非如此。您发送请求,购买可能会在几分钟或几小时后到来。我认为这主要是服务器过载和信用卡审批。
然后我有一个包含我的项目的 ListView,我在每个项目上打开一个 AlertDialog,邀请他们购买该项目。当他们点击一个项目时,我这样做:
好的,您应该看到市场打开并且用户完成或取消购买。
然后重要的是我的 PurChaseObserver,它处理市场发送的所有事件。这是它的精简版,但你应该明白这一点(请参阅我对代码的评论):
而且我相信您不需要编辑任何其他内容。其余代码“有效”。您可以先在您自己的商品“android.test.purchased”中尝试使用示例 SKU。到目前为止,我已经对此进行了测试并且可以正常工作,但是我仍然需要涵盖所有内容,例如退款状态。在这种情况下,我让用户保留这些功能,但我想在修改它之前确保它能完美运行。
我希望它能帮助你和其他人。