播放Billing Library v1.0订单状态

时间:2017-10-28 09:28:44

标签: java android in-app-purchase in-app-billing

我已经使用

为我的一个Android应用程序实现了inapp购买
com.android.billingclient:billing:1.0

here

所述

我正在检查用户是否已使用以下代码购买SKU

  mBillingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponse) {
            if (billingResponse == BillingClient.BillingResponse.OK) {
                Log.e("billing",""+billingResponse);
                Log.e(TAG, "onBillingSetupFinished() response: " + billingResponse);
                Purchase.PurchasesResult result = mBillingClient.queryPurchases(BillingClient.SkuType.INAPP);
                if(result.getPurchasesList().size() > 0) {
                    Log.e("Purchased Product", result.getPurchasesList().get(0).getSku());
                    if (result.getPurchasesList().get(0).getSku().equals(constant.sku))
                        constant.ad_removed = true;
                    Log.e("code",""+result.getResponseCode());
                }
            }

            else {
                Log.e(TAG, "onBillingSetupFinished() error code: " + billingResponse);
            }
        }
        @Override
        public void onBillingServiceDisconnected() {
            Log.e(TAG, "onBillingServiceDisconnected()");
        }
    });

它工作正常,但如果用户购买了SKU,我会提供优质应用程序的好处,但如果用户要求退款并且我们退款用户会怎样?我已经尝试退还一个订单并将其显示在我的控制台中作为已退款,但由于结算响应显示用户购买了该SKU,用户仍然享有优惠。任何人都有想法解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

如果状态已退款,您可以使用该产品,以便产品不再存在。

但显然,没有这样的方法来检查购买是否已在Play Billing Library v1.0中退款。可能它将在未来添加。

目前,在退款时,请将交易ID存储在您的服务器中并制作API以检查购买是否已退款。然后在应用程序中,使用购买详细信息调用服务器。如果服务器返回退款,请使用该产品。

您也可以将Void Purchases API用于同一目的: https://developers.google.com/android-publisher/voided-purchases