我测试谷歌应用内支付使用测试帐户,我想我已经推出
acknowledgeNonConsumablePurchasesAsync
对于非消耗品,就像代码A一样。
但是googleplay给我退款这个测试订单,你可以看到图片a。
代码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