نقل البيانات من الإصدار 6 أو 7 إلى الإصدار 8 من Google Play Billing Library

يوضّح هذا المستند كيفية نقل البيانات من الإصدار 6 أو 7 من Google Play Billing Library (PBL) إلى الإصدار 8، وكيفية الدمج مع إمكانات الاشتراك الاختيارية الجديدة.

للاطّلاع على القائمة الكاملة بالتغييرات في الإصدار 8.0.0، يُرجى الرجوع إلى ملاحظات الإصدار.

نظرة عامة

يتضمّن الإصدار 8 من PBL تحسينات على واجهات برمجة التطبيقات الحالية، بالإضافة إلى إزالة واجهات برمجة التطبيقات التي تم إيقافها نهائيًا في السابق. يتضمّن هذا الإصدار من المكتبة أيضًا واجهات برمجة تطبيقات جديدة للمنتجات التي يتم تحصيل سعرها مرة واحدة.

التوافق مع الإصدارات القديمة عند ترقية PBL

لنقل البيانات إلى الإصدار 8 من Play Billing Library، عليك تعديل بعض مراجع واجهة برمجة التطبيقات الحالية أو إزالتها من تطبيقك، كما هو موضّح في ملاحظات الإصدار وفي هذا الدليل لاحقًا.

الترقية من الإصدار 6 أو 7 من مكتبة Play Billing إلى الإصدار 8

لترقية الإصدار من PBL 6 أو 7 إلى PBL 8، اتّبِع الخطوات التالية:

  1. عدِّل إصدار التبعية في Play Billing Library في ملف build.gradle الخاص بتطبيقك.

    dependencies {
      def billingVersion = 8.0.0
      implementation "com.android.billingclient:billing:$billingVersion"
    }
    
  2. (ينطبق ذلك فقط على الترقية من الإصدار 6 إلى الإصدار 8 من مكتبة Play Billing). التعامل مع التغييرات التي تم إجراؤها على واجهة برمجة التطبيقات ذات الصلة بالاشتراكات في تطبيقك

    يسرد الجدول التالي واجهات برمجة التطبيقات ذات الصلة بالاشتراك والتي تمت إزالتها في الإصدار 8 من مكتبة Play Billing Library وواجهة برمجة التطبيقات البديلة المقابلة التي يجب استخدامها في تطبيقك.

    إزالة واجهة برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا في الإصدار 8 من "مكتبة Play Billing" واجهة برمجة التطبيقات البديلة التي يجب استخدامها
    setOldSkuPurchaseToken setOldPurchaseToken
    setReplaceProrationMode setSubscriptionReplacementMode
    setReplaceSkusProrationMode setSubscriptionReplacementMode
  3. عدِّل طريقة تنفيذ الدالة queryProductDetailsAsync.

    حدث تغيير في توقيع طريقة ProductDetailsResponseListener.onProductDetailsResponse، ما يتطلّب إجراء تغييرات في تطبيقك لتنفيذ queryProductDetailsAsync. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة عرض المنتجات المتاحة للشراء.

  4. التعامل مع واجهات برمجة التطبيقات التي تمت إزالتها

    الترقية من

    لم يعُد الإصدار 8 من "مكتبة Play Billing" يتيح استخدام واجهات برمجة التطبيقات المُدرَجة في الجدول التالي. إذا كان تطبيقك يستخدم أيًا من واجهات برمجة التطبيقات التي تمت إزالتها، يُرجى الرجوع إلى الجدول لمعرفة واجهات برمجة التطبيقات البديلة المناسبة.

    إزالة واجهة برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا في الإصدار 8 من "مكتبة Play Billing" واجهة برمجة التطبيقات البديلة التي يجب استخدامها
    واجهات برمجة التطبيقات queryPurchaseHistoryAsync الاطّلاع على سجلّ شراء طلبات البحث
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()‎ (واجهة برمجة التطبيقات بدون مَعلمات) enablePendingPurchases(PendingPurchaseParams params)
    يُرجى العِلم أنّ الدالة المتوقّفة نهائيًا enablePendingPurchases() تتطابق وظيفيًا مع enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync
    BillingClient.Builder.enableAlternativeBilling BillingClient.Builder.enableUserChoiceBilling
    AlternativeBillingListener UserChoiceBillingListener
    AlternativeChoiceDetails UserChoiceDetails

    الترقية من

    يسرد الجدول التالي واجهات برمجة التطبيقات التي تمت إزالتها في الإصدار 8 من PBL وواجهات برمجة التطبيقات البديلة التي يجب استخدامها في تطبيقك.

    إزالة واجهة برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا في الإصدار 8 من "مكتبة Play Billing" واجهة برمجة التطبيقات البديلة التي يجب استخدامها
    واجهات برمجة التطبيقات queryPurchaseHistoryAsync الاطّلاع على سجلّ شراء طلبات البحث
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()‎ (واجهة برمجة التطبيقات بدون مَعلمات) enablePendingPurchases(PendingPurchaseParams params)
    يُرجى العِلم أنّ الدالة المتوقّفة نهائيًا enablePendingPurchases() تتطابق وظيفيًا مع enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync

  5. (يُوصى به) فعِّل ميزة إعادة الاتصال التلقائي بالخدمة.

    يمكن أن تحاول "مكتبة الفوترة في Play" إعادة إنشاء اتصال الخدمة تلقائيًا إذا تم إجراء طلب بيانات من واجهة برمجة التطبيقات أثناء انقطاع الاتصال بالخدمة. لمزيد من المعلومات، يُرجى الاطّلاع على تفعيل إعادة الاتصال التلقائي بالخدمة.

  6. التغييرات الاختيارية