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

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

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

نظرة عامة

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

التوافق مع الأنظمة القديمة لترقية PBL

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

الترقية من PBL 6 أو 7 إلى PBL 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. (لا ينطبق ذلك إلا على الترقية من PBL 6 إلى PBL 8). تعامَل مع التغييرات في واجهات برمجة التطبيقات المتعلقة بالاشتراكات في تطبيقك.

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

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

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

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

    الترقية من

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

    واجهة برمجة التطبيقات التي تم إيقافها سابقًا والتي تمت إزالتها في PBL 8 واجهة برمجة التطبيقات البديلة التي يجب استخدامها
    واجهات برمجة التطبيقات 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

    الترقية من

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

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

  5. (يُنصح به) فعِّل خيار إعادة الاتصال التلقائي بالخدمة.

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

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