7

我正在尝试实现应用内。在 android 中,应用程序内运行良好。但是,当我从设备中删除应用程序并重新安装时,如果我尝试购买,它会显示此消息(product is Managed and in-app API Version 2)

在此处输入图像描述

在日志中,我有一个错误 RESULT_DEVELOPER_ERROR,然后我用谷歌搜索,我发现版本 3 有更多的响应代码,比如BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED

因此,如果产品已经购买,则响应必须是 like BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED,而这在版本 2 中是不可能的。

那我该怎么办?我需要实施第 3 版吗?

4

3 回答 3

11

如果您想每次都强制购买产品,那么产品应该是Unmanaged

产品可以是3种类型

1) 托管

2) 非托管

3) 订阅

托管意味着谷歌它自己保存记录。因此,通过使用相同的电子邮件 ID,用户不必支付费用,例如删除广告

非托管意味着用户每次都必须购买并且需要付费。例如,Pocker 筹码

我在开发者网站上读过的这个 2 示例..

并参考http://developer.android.com/google/play/billing/billing_admin.html

于 2013-01-18T05:13:22.377 回答
4

你调查过RESTORE_TRANSACTIONS吗?

我遇到了与您上面描述的几乎相同的问题。我的代码大部分取自Market Billing Sample Application

我在调用BillingService.restoreTransactions例程的购买活动中添加了一个 RESTORE 按钮。

RESTORE_TRANSACTIONS如果您在此页面中搜索: https ://developer.android.com/google/play/billing/v2/api.html ,您会发现调用该例程会重新触发PURCHASE_STATE_CHANGED广播。

在我的代码中,它触发了onPurchaseStateChange例程,它的工作方式与初始购买PurchaseState时设置为PURCHASED.

于 2013-01-03T19:37:52.690 回答
3

BillingService.restoreTransactions()在抓到后打了电话RESULT_DEVELOPER_ERROR。看起来很奇怪,但工作正常。

于 2013-01-18T11:36:59.447 回答