android - 消耗旧购买 Android IAB V3

标签 android in-app-billing

我在测试我的应用程序时遇到问题。我有 2 件商品可供用户购买。几天前我不知道我应该消费购买的东西。今天,每次我尝试购买其中一件商品时,我都会收到代码 7(商品已拥有),因为我没有消费它。我可以做什么来消耗旧购买?

添加: 这两个项目在开发者控制台都是“不受管理”的

最佳答案

我尝试使用错误的 token 进行消费。这段代码帮助了我。

Bundle ownedItems = mService.getPurchases(3, context.getPackageName(), "inapp", null);
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0)
{
    ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
    ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
    //ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
    //String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");
    for (int i = 0; i < purchaseDataList.size(); ++i) {
        try {
            String purchaseData = purchaseDataList.get(i);
            JSONObject jo = new JSONObject(purchaseData);
            final String token = jo.getString("purchaseToken");
            String sku = null;
            if (ownedSkus != null)
                sku = ownedSkus.get(i);
            consume(sku, token, purchaseData);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

关于android - 消耗旧购买 Android IAB V3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22146619/

相关文章:

android - Flutter 没有适用于应用内订阅查询的产品

Android 应用内购买降级-升级

java - 通过比较两个ArrayList获取不匹配的值

java - ImageView 无法在运行时调整大小

android - Android和Sql Server之间的复制

android - In-app billing的货币判断

Android:多个用户无法使用同一设备购买相同的应用内购买项目

android - Kotlin改型预期为begin_array,但在第1行为begin_object

android - 检测哪个电话号码可以发送短信

android - 实现应用内 bp 后,如何解锁应用内的付费 flavor