Я тестирую оплату через приложение 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