Почему платеж возвращается, когда я тестирую оплату через приложение Google с помощью тестовой учетной записи? - PullRequest
0 голосов
/ 02 августа 2020

Я тестирую оплату через приложение Google, используя тестовую учетную запись. Кажется, я запустил acknowledgeNonConsumablePurchasesAsync для Non Consumable item, как и Code A.

Но Google Play вернул мне деньги за этот тестовый заказ, вы можете видеть изображение A.

Всегда ли Google Play возвращает деньги за тестовый заказ? или есть проблемы с моим кодом?

Код A

  private fun processPurchases(purchasesResult: Set<Purchase>): Job {
        return CoroutineScope(Job() + Dispatchers.IO).launch {
            val validPurchases = HashSet<Purchase>(purchasesResult.size)
            purchasesResult.forEach { purchase ->
                if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {

                    if (purchase.sku.equals(purchaseItem)){
                        if (isSignatureValid(purchase)) {
                            validPurchases.add(purchase)
                            setIsRegisteredAppAsTrue(mContext)
                            mContext.toast(R.string.msgOrderOK)
                        }
                    }

                } else if (purchase.purchaseState == Purchase.PurchaseState.PENDING) {
                    Log.d(LOG_TAG, "Received a pending purchase of SKU: ${purchase.sku}")
                    // handle pending purchases, e.g. confirm with users about the pending
                    // purchases, prompt them to complete it, etc.
                }else{
                    mContext.toast(R.string.msgOrderError)
                }
            }
            acknowledgeNonConsumablePurchasesAsync(validPurchases.toList())
        }
    }

   private fun acknowledgeNonConsumablePurchasesAsync(nonConsumables: List<Purchase>) {
        nonConsumables.forEach { purchase ->
            val params = AcknowledgePurchaseParams.newBuilder()
                           .setPurchaseToken(purchase
                           .purchaseToken).build()

            playStoreBillingClient.acknowledgePurchase(params) { billingResult ->
                when (billingResult.responseCode) {
                    BillingClient.BillingResponseCode.OK -> {
                        
                    }
                    else -> Log.d(LOG_TAG, "acknowledgeNonConsumablePurchasesAsync response is ${billingResult.debugMessage}")
                }
            }
        }
    }

Изображение A android

...