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

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

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

نظرة عامة

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

التوافق مع الإصدارات القديمة لترقية 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 من "سياسة الفوترة حسب الاستخدام" وواجهة برمجة التطبيقات البديلة المقابلة التي يجب استخدامها في تطبيقك.

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

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

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

    الترقية من

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

    تمت إزالة واجهة برمجة التطبيقات المتوقّفة نهائيًا سابقًا في الإصدار 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 من "سياسة الفوترة داخل التطبيق"، وواجهات برمجة التطبيقات البديلة التي يجب استخدامها في تطبيقك.

    تمت إزالة واجهة برمجة التطبيقات المتوقّفة نهائيًا سابقًا في الإصدار 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. تغييرات اختيارية