Google Play Billing Library 2.0 подтверждает ограничение по времени покупки для тестовых покупок - PullRequest
0 голосов
/ 22 мая 2019

Я тестировал новый выпуск биллинговой библиотеки Google. В примечаниях к выпуску говорится, что «Покупки должны быть подтверждены в течение трех дней».

Примечания к выпуску

Во время тестирования я заметил, что, если я не подтверждаю покупку, в течение нескольких минут она автоматически возвращается.

Это тот случай, когда 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);
}

1 Ответ

2 голосов
/ 23 мая 2019

Из документов видно, что тестовые покупки работают в гораздо более короткие сроки, чтобы помочь тестированию: https://developer.android.com/google/play/billing/billing_testing#testing-renewals

Если продление подписки на одну неделю через 5 минут, я предполагаю, что 3-дневный лимит подтверждения покупки будет сокращен до пары минут во время разработки.

...