4

我一直在测试新的 Google 计费库版本。发行说明指出“必须在三天内确认购买”。

发行说明

在测试过程中,我注意到如果我不确认购买,几分钟内,购买会自动退款。

是不是谷歌对待测试订单的方式不同,只允许几分钟来确认订单而不是 3 天,还是我错过了什么?

这是我用来确认购买的代码。PurchaseHolder 是一个包含购买和 SKU 以及来自我的后端服务器的响应代码的类

for (IABManager.PurchaseHolder pm : purchaseHolders){
    if(pm.getSku().equals(SKU)) {//found matching SKU
        if (pm.getActionResult() == IABManager.BillingActionResult.VALID_PURCHASE) {//valid purchase made
            if(!pm.getPurchase().isAcknowledged()) {//purchase not yet acknowledged
                iabManager.acknowledgePurchases(pm.getPurchase(), (billingResult) -> {
                    Log.d(TAG, "AcknowledgedPurchaseResponse received from Google");
                    if(billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                        unlockFeatures();
                    }
                });
            }else{
                unlockFeatures();
            }

        } else if (pm.getActionResult() == IABManager.BillingActionResult.NON_VALID_PURCHASE){
            lockFeatures();
        }else{
            Log.d(TAG, "BILLING_ACTION_RESULT = " + pm.getActionResult() + " doing nothing");
        }
    }
}

...以及确认购买方法

public void acknowledgePurchases(Purchase purchase, AcknowledgePurchaseResponseListener listener){

    AcknowledgePurchaseParams params = AcknowledgePurchaseParams.newBuilder()
            .setPurchaseToken(purchase.getPurchaseToken()).build();

    billingClient.acknowledgePurchase(params, listener);
}
4

2 回答 2

4

事实上,来自 Google Play Billing Library 文档

对于许可证测试人员进行的购买,确认窗口较短。如果在五分钟内未确认购买,购买将被退款和撤销,而不是三天

https://developer.android.com/google/play/billing/billing_library_overview#test_acknowledgeing_purchase_with_license_testers

于 2019-09-26T11:39:55.990 回答
2

从文档中我们可以看到测试购买在更短的时间范围内进行以帮助测试:https ://developer.android.com/google/play/billing/billing_testing#testing-renewals

如果在 5 分钟内续订一周的订阅,我想在开发过程中 3 天的购买确认限制将减少到几分钟。

于 2019-05-22T21:24:08.953 回答