Должно ли приложение стать бесплатным, если я запустил возврат в консоли Google Play? - PullRequest
0 голосов
/ 14 апреля 2019

У меня проблемы с Google Play API. У меня есть in app покупка (приложение либо free, либо premium). Когда я нажимаю кнопку Refund для заказа в консоли Google Play через несколько минут, я вижу сообщение о том, что возврат денег завершен.

enter image description here

Моя проблема в том, что в моем приложении я все еще получаю от API Google это приложение premium. Я прочитал о кеше, поэтому после возврата я установил свое приложение на совершенно новое устройство, и оно все еще premium.

Так что же означает Refund в консоли? Это просто подарок пользователю с возвратом денег и сохранением приложения premium?

Обновление 16/04/2019: вот мой код

class PurchaseManagerImpl(private val context: Context) : PurchaseManager {
    private lateinit var mBillingClient: BillingClient
    private lateinit var listener: BillingUpdatesListener

    override fun setupBilling(l: BillingUpdatesListener) {
        listener = l
        mBillingClient = BillingClient.newBuilder(context).setListener { responseCode, purchases ->
        // also called when new purchases are made
        if (responseCode == BillingClient.BillingResponse.OK && purchases != null) {
            for (purchase in purchases) {
                listener.onBillingSuccess()
            }
        } else if (responseCode == BillingClient.BillingResponse.USER_CANCELED) {
            // Handle an error caused by a user cancelling the purchase flow.
            listener.onBillingError( context.getString(R.string.error_user_cancelled))
        } else {
            listener.onBillingError( this.context.getString(R.string.error_undefined))
        }
        }.build()
        startConnection()
    }

    override fun startConnection() {
        mBillingClient.startConnection(object : BillingClientStateListener {
            override fun onBillingSetupFinished(responseCode: Int) {
                if (responseCode == BillingClient.BillingResponse.OK) {
                    // The billing client is ready. You can query purchases here.
                    queryPurchases()
                    querySkuDetails()
                }
            }
        })
    }


    private fun querySkuDetails() {
        // for in-app purchase
        val skuList = arrayListOf("premium")
        val params = SkuDetailsParams.newBuilder()
        params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP)
        mBillingClient.querySkuDetailsAsync(params.build()) { responseCode, skuDetailsList ->
            if (responseCode == BillingClient.BillingResponse.OK && skuDetailsList != null) {
                for (skuDetails in skuDetailsList) {
                    val sku = skuDetails.sku
                    val price = skuDetails.price
                }
            }
        }
    }

    private fun queryPurchases() {
        mBillingClient.queryPurchases(BillingClient.SkuType.INAPP)?.let { purchasesResult ->
            if (purchasesResult.responseCode == BillingClient.BillingResponse.OK) {
                if (purchasesResult.purchasesList.size != 0) {
                    listener.onBillingSuccess()
                }
            }
        }
    }

    override fun launchBuy(activity: Activity) {
        val flowParams = BillingFlowParams.newBuilder()
                .setSku("premium")
                .setType(BillingClient.SkuType.INAPP)
                .build()
        if (::mBillingClient.isInitialized) {
            mBillingClient.launchBillingFlow(activity, flowParams)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...