调用consumeAsync

Pan*_*dav 0 android android-fragments

我已经在我的应用程序中实现了应用程序内购买,但它们只能在我的 onPurchaseFinished 代码中购买一次,我应该在哪里调用 onConsumeListener?

@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {


    if (responseCode == BillingClient.BillingResponse.OK
            && purchases != null) {
       Toast.makeText(getContext(), "Purchased", Toast.LENGTH_SHORT).show();
        adddata();


        for (Purchase purchase : purchases) {

        }
    } else if (responseCode == BillingClient.BillingResponse.USER_CANCELED) {
        // Handle an error caused by a user cancelling the purchase flow.

    } else if (responseCode == BillingClient.BillingResponse.ITEM_ALREADY_OWNED) {

        Toast.makeText(getContext(), "Purchase Limit Reached! Try again later", Toast.LENGTH_SHORT).show();

    } else{

        // Handle any other error codes.
    }
}
Run Code Online (Sandbox Code Playgroud)

Blu*_*ien 5

可以帮助某人,这适用于 Billing Library 版本 3:

ConsumeParams consumeParams = ConsumeParams
                .newBuilder()
                .setPurchaseToken(purchase.getPurchaseToken())
                .build();
        billingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
            @Override
            public void onConsumeResponse(BillingResult billingResult, String s) {

                //do something..
            }
        });
Run Code Online (Sandbox Code Playgroud)

仅供参考,我在查询后消费了购买 - queryPurchaseHistoryAsync,所以我的purchase对象类型为:PurchaseHistoryRecord