找不到订阅应用内购买

问题描述

我在项目中实施应用内购买时遇到了问题。

当我测试我的应用程序时,它始终无法创建订阅。但是Play控制台中有订阅我有1个具有真实ID的订阅

这是我的代码

private var billingClient: BillingClient? = null

onPurchaseUpdate:

override fun onPurchasesUpdated(billingResult: BillingResult,purchases: MutableList<Purchase>?) {

    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null){

        handlePurchase(purchases[0])
    }
    else if (billingResult.responseCode == BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED){

        val queryAlreadyPurchasesResult = billingClient!!.queryPurchases(SUBS)
        val alreadyPurchases = queryAlreadyPurchasesResult.purchasesList

        if (alreadyPurchases != null){

            handlePurchase(alreadyPurchases[0])
        }
    }
    else if (billingResult.responseCode == BillingClient.BillingResponseCode.USER_CANCELED){

        Toast.makeText(this@MainActivity,"Purchase Canceled!",Toast.LENGTH_SHORT).show()
    }
    else{

        Toast.makeText(this@MainActivity,"Error: ${billingResult.debugMessage}",Toast.LENGTH_SHORT).show()
    }
}

购买句柄:

private fun handlePurchase(purchases: Purchase){

   if (purchases.purchaseState == Purchase.PurchaseState.PURCHASED){

        val consumeParams = ConsumeParams.newBuilder()
            .setPurchasetoken(purchases.purchasetoken)
            .build()

       billingClient!!.consumeAsync(consumeParams) { billingResult,outToken ->

           if (billingResult.responseCode == BillingClient.BillingResponseCode.OK){

                Toast.makeText(this@MainActivity,"Purchase Success!",Toast.LENGTH_SHORT).show()
           }
       }
   }
}

订阅乐趣:

private fun subscribe(){

    if (billingClient!!.isReady){

        initiatePurchase()
    }
    else{

        billingClient = BillingClient.newBuilder(this)
            .enablePendingPurchases()
            .setListener(this)
            .build()

        billingClient!!.startConnection(object: BillingClientStateListener{

            override fun onBillingServicedisconnected() {

                Toast.makeText(this@MainActivity,"Service disconnected",Toast.LENGTH_SHORT).show()
            }

            override fun onBillingSetupFinished(billingResult: BillingResult) {

                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK){

                    initiatePurchase()
                }
                else{

                    Toast.makeText(this@MainActivity,Toast.LENGTH_SHORT).show()
                }
            }
        })
    }
}

启动购买乐趣:

private fun initiatePurchase(){

    val skuList: MutableList<String> = ArrayList()
    skuList.add(Constans.SUBS_ID)

    val params = SkuDetailsParams.newBuilder()
    params.setSkusList(skuList).setType(SUBS)

    val billingResult = billingClient!!.isFeatureSupported(BillingClient.FeatureType.SUBSCRIPTIONS)
    if (billingResult.responseCode == BillingClient.BillingResponseCode.OK){

        billingClient!!.querySkuDetailsAsync(params.build(),object: SkuDetailsResponseListener{

            override fun onSkuDetailsResponse(billingResult: BillingResult,skuDetailsList: MutableList<SkuDetails>?) {

                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK){

                    if (skuDetailsList != null && skuDetailsList.isNotEmpty()){

                        val flowParams = BillingFlowParams.newBuilder()
                            .setSkuDetails(skuDetailsList[0])
                            .build()

                        billingClient!!.launchBillingFlow(this@MainActivity,flowParams)
                    }
                    else{

                        Toast.makeText(this@MainActivity,"Item not Found!",Toast.LENGTH_SHORT).show()
                    }
                }
                else{

                    Toast.makeText(this@MainActivity,Toast.LENGTH_SHORT).show()
                }
            }
        })
    }
    else{

        Toast.makeText(this@MainActivity,"Sorry Subscription not Supported. Please Update Play Store",Toast.LENGTH_SHORT).show()
    }
}

我总是看到消息“找不到项目”。

有什么问题?预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)