العودة إلى موقع برمج

المشتريات داخل التطبيق ( مربع الحوار الخاص بالشراء لا يظهر)

android
#1

عند تطبيق عمليات الشراء داخل التطبيق الخاص بي والموضحة في موقع developer.android
وهذا هو رابط الشرح

Use the Google Play Billing Library

كل شيء مثالي يمكنني الحصول على سعر ووصف وعنوان المنتج
المشكلة هي عدم ظهور مربع حوار الشراء

أنا استخدم هاتف حقيقي لتطبيق التغييرات

انا استخدم لغة kotlin

المرجو منكم تقديم المساعدة
شكرا لكم

الكود الخاص بالمشتريات داخل التطبيق

class AppBilling : AppCompatActivity(), PurchasesUpdatedListener {
private lateinit var billingClient: BillingClient
private val skuList = ArrayList<String>()

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

    Log.i("TAG", "$billingResult :::: $purchases")

    if (billingResult != null) {
        if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
            for (purchase in purchases) {
                Log.i("TAG", "$purchase if")
                handlePurchase(purchase)
            }
        } else if (billingResult.responseCode == BillingClient.BillingResponseCode.USER_CANCELED) {
            Log.i("TAG", "else if")
        } else {
            Log.i("TAG", "else")
        }
    }
}
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_app_billing)
    billingClient = BillingClient.newBuilder(this@AppBilling).setListener(this).enablePendingPurchases().build()

    val params = SkuDetailsParams.newBuilder()
    skuList.add("rm_admob")
    params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP)

    billingClient.startConnection(object : BillingClientStateListener {
        override fun onBillingSetupFinished(billingResult: BillingResult?) {
            billingClient.querySkuDetailsAsync(params.build()) { billingResult, skuDetailsList ->
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
                    for (skuDetails in skuDetailsList) {
                        val sku = skuDetails.sku
                        val price = skuDetails.originalPrice
                        val title = skuDetails.title
                        val desc = skuDetails.description
                        val flowParams = BillingFlowParams.newBuilder().setSkuDetails(skuDetails).build()
                        if ("rm_admob" == sku) {
                            id_price.text = price
                            id_title.text = title
                            id_desc.text = desc

                            id_rm_admob.setOnClickListener {
                                val responseCode = billingClient.launchBillingFlow(this@AppBilling, flowParams)
                            }

                        }
                    }
                }
            }
        }

        override fun onBillingServiceDisconnected() {

        }

    })
}

private fun handlePurchase(purchase: Purchase) {
    if (purchase.sku == "rm_admob") {
        Log.i("TAG", "handlePurchase()")
    }
}

}

#2

تم نقل طلبك للقسم المختص وسيتم الرد عليك بأقرب وقت ممكن

1 Like