消耗品IAP的实施

时间:2019-08-23 15:00:13

标签: android in-app-purchase google-play-console

我在设置易耗品时遇到问题。我遵循了文档,但是我不知道出什么问题了,问题是:

  

产品基本上只能购买一次,而不是消耗品   是非消耗性的。

以下是代码段:

void handlePurchase(Purchase purchase) {
    if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
        // Grant entitlement to the user.
        MainFragmentHelper helper = new MainFragmentHelper();
        helper.payment(purchase.getSku(), "purchased", new Date().toString(), purchase.getOrderId(), "");
        // Acknowledge the purchase if it hasn't already been acknowledged.
        if (!purchase.isAcknowledged()) {
            AcknowledgePurchaseParams acknowledgePurchaseParams =
                    AcknowledgePurchaseParams.newBuilder()
                            .setPurchaseToken(purchase.getPurchaseToken())
                            .build();
            billingClient.acknowledgePurchase(acknowledgePurchaseParams, new AcknowledgePurchaseResponseListener() {
                @Override
                public void onAcknowledgePurchaseResponse(BillingResult billingResult) {
                }
            });
        }
        allowMultiplePurchases(purchase);
    }
}

private void allowMultiplePurchases(Purchase purchase) {
    if (purchase != null) {
        //Indicate consumable purchase
        ConsumeParams consumeParams =
                ConsumeParams.newBuilder()
                        .setPurchaseToken(purchase.getPurchaseToken())
                        .setDeveloperPayload(purchase.getDeveloperPayload())
                        .build();
        ConsumeResponseListener listener = new ConsumeResponseListener() {
            @Override
            public void onConsumeResponse(BillingResult billingResult, String outToken) {
                if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                    // Handle the success of the consume operation.

                }
            }
        };

        billingClient.consumeAsync(consumeParams,listener);
    }
}

文档说:

  

要表明一次性产品已被消费,请致电   consumeAsync()在您的BillingClient实例上,并包含   Google Play应该可以回购的购买令牌。   您还必须传递一个实现   ConsumeResponseListener界面。该对象处理的结果   消费操作。

我不知道我在想什么。任何帮助都非常感谢。谢谢。

0 个答案:

没有答案