我正在尝试在应用内实施。在Android中,应用程序内部工作正常。但是,当我从设备中删除应用程序并重新安装时,如果我尝试购买,则显示此消息{ {1}}
并且在日志中,我有一个错误(product is Managed and in-app API Version 2)
,然后我用Google搜索,我发现版本3有更多的响应代码,例如RESULT_DEVELOPER_ERROR
因此,如果已购买产品,则响应必须与BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED
类似,而且在第2版中无法做到。
那我该怎么办?我需要实现版本3吗?
答案 0 :(得分:11)
如果您希望强力购买产品每次,那么产品应不受管理。
产品可以是3种类型
1)管理
2)不受管理
3)描述
管理意味着谷歌自己保持记录。因此,通过使用相同的电子邮件ID用户不必支付其费用,例如删除广告
不受管理意味着用户必须每次都购买并且将被收费。例如Pocker筹码
我在开发者网站上阅读了这个例子。
并参考http://developer.android.com/google/play/billing/billing_admin.html
答案 1 :(得分:4)
你有没有看过RESTORE_TRANSACTIONS
?
我上面描述的问题几乎相同。我的代码大部分取自Market Billing Sample Application。
我在我的购买活动中添加了一个RESTORE按钮,该按钮调用BillingService.restoreTransactions
例程。
如果您在此页面中搜索RESTORE_TRANSACTIONS
:https://developer.android.com/google/play/billing/v2/api.html,您会发现调用该例程会重新触发PURCHASE_STATE_CHANGED
广播。
在我的代码中,触发了onPurchaseStateChange
例程,其工作方式与初始购买时的工作方式相同,PurchaseState
设置为PURCHASED
。
答案 2 :(得分:2)
我最终在抓住BillingService.restoreTransactions()
后致电RESULT_DEVELOPER_ERROR
。看起来很奇怪,但工作正常。