Android计费库V3

Android计费库V3,android,google-play,in-app-billing,android-billing,Android,Google Play,In App Billing,Android Billing,也许我做错了什么,但如果是这样的话,我就想不出来了。我正在尝试购买一种产品,无论出于何种原因,购买过程都不正确。当我点击购买一件物品时,它会给我一个计费过程。然后在付款后,我必须再次单击它才能收到我购买的芯片。任何帮助都会很棒,谢谢!如果你不熟悉这个工具,这里有一个链接,如果你需要更多的细节,请告诉我 bp = new BillingProcessor(this, base64EncodedPublicKey, new BillingProcessor.IBill

也许我做错了什么,但如果是这样的话,我就想不出来了。我正在尝试购买一种产品,无论出于何种原因,购买过程都不正确。当我点击购买一件物品时,它会给我一个计费过程。然后在付款后,我必须再次单击它才能收到我购买的芯片。任何帮助都会很棒,谢谢!如果你不熟悉这个工具,这里有一个链接,如果你需要更多的细节,请告诉我

    bp = new BillingProcessor(this, base64EncodedPublicKey,
            new BillingProcessor.IBillingHandler() {

                @Override
                public void onProductPurchased(String productId,
                        TransactionDetails details) {
                    Log.v("chip", productId + " purchased");
                    if (bp.consumePurchase(productId)){
                        if(productId=="itemOne" || productId=="one_chip")
                            ChipUpdate.updateChipCount(2500);
                        if(productId=="itemTwo"|| productId=="five_chip")
                            ChipUpdate.updateChipCount(15000);
                        if(productId=="itemThree"|| productId=="ten_chip")
                            ChipUpdate.updateChipCount(35000);
                        if(productId=="itemFour"|| productId=="fifty_chip")
                            ChipUpdate.updateChipCount(200000);
                    }
                }

                @Override
                public void onBillingError(int errorCode, Throwable error) {
                    Log.v("chip", "Error code: " + errorCode);
                    Log.v("chip", "Error: " + error);
                }

                @Override
                public void onBillingInitialized() {
                    Log.v("chip", "billing initialized");
                    readyToPurchase = true;
                }

                @Override
                public void onPurchaseHistoryRestored() {
                    for (String sku : bp.listOwnedProducts())
                        Log.v("chip", "Owned Managed Product: " + sku);
                    for (String sku : bp.listOwnedSubscriptions())
                        Log.v("chip", "Owned Subscription: " + sku);
                }

            });
public void oneChip(String noVal) {
    Log.v("oneChip", "Calling launch purchase flow");
    bp.purchase(this, itemOne);
    Log.v("oneChip", "made it through launch purchase flow");
}

public void fiveChip(String noVal) {
    Log.v("fiveChip", "Calling launch purchase flow");
    bp.purchase(this, itemTwo);
    Log.v("fiveChip", "made it through launch purchase flow");
}

public void tenChip(String noVal) {
    Log.v("tenChip", "Calling launch purchase flow");
    bp.purchase(this, itemThree);
    Log.v("tenChip", "made it through launch purchase flow");
}

public void fiftyChip(String noVal) {
    Log.v("fiftyChip", "Calling launch purchase flow");
    bp.purchase(this, itemFour);
    Log.v("fiftyChip", "made it through launch purchase flow");
}

我想你不应该在
onProductPurchased

中调用
consumerpurchase

我尝试忽略它,但我遇到了一个错误,在购买物品后,你可以获得无限的筹码。我还尝试移动if语句,但仍然没有成功。您应该使用调用
bp.purchase
的相同方法进行消费,而不是在我最初调用的计费回调中。我知道了为什么会这样。以下是原因的链接: