מיגרציה לגרסה 8 של ספריית החיובים ב-Google Play מגרסה 6 או 7

במאמר הזה מוסבר איך לבצע מיגרציה מגרסה 6 או 7 של ספריית החיוב של Google Play‏ (PBL) לגרסה 8 של PBL, ואיך לשלב את יכולות המינוי החדשות והאופציונליות.

רשימת השינויים המלאה בגרסה 8.0.0 מופיעה בנתוני הגרסה.

סקירה כללית

‫PBL 8 כולל שיפורים בממשקי API קיימים, וגם הסרה של ממשקי API שהוצאו משימוש בעבר. הגרסה הזו של הספרייה כוללת גם ממשקי API חדשים למוצרים חד-פעמיים.

תאימות לאחור לשדרוג PBL

כדי לעבור ל-PBL 8, צריך לעדכן או להסיר מהאפליקציה חלק מההפניות הקיימות ל-API, כמו שמתואר בהערות לגרסה ובהמשך במדריך הזה להעברה.

שדרוג מ-PBL 6 או 7 ל-PBL 8

כדי לשדרג מ-PBL 6 או 7 ל-PBL 8, מבצעים את השלבים הבאים:

  1. מעדכנים את גרסת התלות של ספריית החיובים ב-Play בקובץ build.gradle של האפליקציה.

    dependencies {
      def billingVersion = 8.0.0
      implementation "com.android.billingclient:billing:$billingVersion"
    }
    
  2. (רלוונטי רק לשדרוג מ-PBL 6 ל-PBL 8). טיפול בשינויים ב-API שקשורים למינויים באפליקציה.

    בטבלה הבאה מפורטים ממשקי ה-API שקשורים למינויים שהוסרו בגרסה PBL 8, וממשקי ה-API החלופיים שבהם צריך להשתמש באפליקציה.

    ‫API שהוצא משימוש בעבר הוסר ב-PBL 8 ‫API חלופי לשימוש
    setOldSkuPurchaseToken setOldPurchaseToken
    setReplaceProrationMode setSubscriptionReplacementMode
    setReplaceSkusProrationMode setSubscriptionReplacementMode
  3. מעדכנים את ההטמעה של השיטה queryProductDetailsAsync.

    היה שינוי בחתימה של השיטה ProductDetailsResponseListener.onProductDetailsResponse, ולכן צריך לבצע שינויים בהטמעה של queryProductDetailsAsync באפליקציה. מידע נוסף זמין במאמר בנושא הצגת מוצרים שזמינים לקנייה.

  4. טיפול בממשקי ה-API שהוסרו.

    שדרוג מ

    גרסה PBL 8 לא תומכת יותר בממשקי ה-API שמפורטים בטבלה הבאה. אם ההטמעה שלכם משתמשת באחד מממשקי ה-API שהוסרו, תוכלו לעיין בטבלה כדי לראות אילו ממשקי API חלופיים מתאימים.

    ‫API שהוצא משימוש בעבר הוסר ב-PBL 8 ‫API חלופי לשימוש
    queryPurchaseHistoryAsync APIs איך בודקים את היסטוריית הרכישות של שאילתות
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()‎ (API ללא פרמטרים) 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

    שדרוג מ

    בטבלה הבאה מפורטים ממשקי ה-API שהוסרו ב-PBL 8, וממשקי ה-API החלופיים המתאימים שבהם צריך להשתמש באפליקציה.

    ‫API שהוצא משימוש בעבר הוסר ב-PBL 8 ‫API חלופי לשימוש
    queryPurchaseHistoryAsync APIs איך בודקים את היסטוריית הרכישות של שאילתות
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases()‎ (API ללא פרמטרים) enablePendingPurchases(PendingPurchaseParams params)
    שימו לב שהפונקציה enablePendingPurchases() שהוצאה משימוש זהה מבחינה פונקציונלית ל-enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync

  5. (מומלץ) מפעילים חיבור מחדש אוטומטי לשירות.

    אם מתבצעת קריאה ל-API בזמן שהשירות מנותק, Play Billing Library יכולה לנסות ליצור מחדש את חיבור השירות באופן אוטומטי. מידע נוסף זמין במאמר הפעלת חיבור מחדש אוטומטי לשירות.

  6. שינויים אופציונליים.