Покупки через Google In-App всегда возвращаются

У меня проблемы с покупкой через приложение Google. Все полученные платежи возвращаются через 72 часа. Есть ли ошибка в моих платежных кодах? Я заплатил сам и не требовал возврата денег, но даже деньги вернули через 72 часа.

play_console_screenshot

private void setupBilling() {
    mBillingClient = BillingClient.newBuilder(MainActivity.this).setListener(this).enablePendingPurchases().build();
    mBillingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(BillingResult billingResult) {
            if (billingResult.getResponseCode() ==  BillingClient.BillingResponseCode.OK) {
                final List<String> skuList = new ArrayList<> ();
                skuList.add("remove_ads");
                final SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
                params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);

                mBillingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
                    @Override
                    public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> list) {
                        if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && list != null) {
                            BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                                    .setSkuDetails(list.get(0))
                                    .build();
                            mBillingClient.launchBillingFlow(MainActivity.this, flowParams);
                        }
                    }
                });

            }else{
                Toast.makeText(MainActivity.this, "error", Toast.LENGTH_SHORT).show();
            }
        }
        @Override
        public void onBillingServiceDisconnected() {
            Toast.makeText(MainActivity.this, "error", Toast.LENGTH_SHORT).show();
        }
    });
}

@Override
public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> list) {
    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
            && list != null) {
        for (Purchase purchase : list) {
            if(purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED){

                Toast.makeText(MainActivity.this, purchase.getSku() + " ok", Toast.LENGTH_SHORT).show();

            }
        }
    } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
        Toast.makeText(this, "İptal edildi", Toast.LENGTH_SHORT).show();
    } else if(billingResult.getResponseCode() == BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED) {

        Toast.makeText(this, "alreadry owned", Toast.LENGTH_LONG).show();

    }else{
        Toast.makeText(this, "error", Toast.LENGTH_SHORT).show();
    }

}

person Serhat Hacıoğlu    schedule 19.04.2020    source источник


Ответы (1)


Похоже, вы неправильно подтверждаете покупку.

Если вы используете Библиотеку выставления счетов Google Play версии 2.0 или новее, вы должны подтвердить все покупки в течение трех дней. Неспособность должным образом подтвердить покупки приводит к возврату денег за эти покупки.

Более подробную информацию можно найти в документации: https://developer.android.com/google/play/billing/billing_library_overview#acknowledge

BillingClient client = ...
AcknowledgePurchaseResponseListener acknowledgePurchaseResponseListener = ...

void handlePurchase(Purchase purchase) {
    if (purchase.getPurchaseState() == PurchaseState.PURCHASED) {
        // Grant entitlement to the user.
        ...

        // Acknowledge the purchase if it hasn't already been acknowledged.
        if (!purchase.isAcknowledged()) {
            AcknowledgePurchaseParams acknowledgePurchaseParams =
                AcknowledgePurchaseParams.newBuilder()
                    .setPurchaseToken(purchase.getPurchaseToken())
                    .build();
            client.acknowledgePurchase(acknowledgePurchaseParams, acknowledgePurchaseResponseListener);
        }
    }
}
person enc_life    schedule 20.04.2020
comment
Пользователи оплачивали покупки в нашем приложении, но Google автоматически возвращает деньги через 72 часа 10 минут, я не знаю, почему это происходит. я сделал весь код как документ флаттера, а также добавил ниже (app / build.gradle) зависимости {реализация 'com.android.billingclient: billing: 2.0.3', но каждый раз, когда пользователи платили покупку в приложении, но автоматически Google возврат через 72 часа и 10 минут. Какие-нибудь решения, пожалуйста? (Приложение Flutter) - person Jignesh Patel; 13.11.2020