במאמר הזה מוסבר איך להעביר נתונים מספריית החיובים ב-Google Play (PBL) בגרסה 6 או 7 אל PBL בגרסה 8, ואיך לשלב את היכולות החדשות והאופציונליות של המינויים.
רשימת השינויים המלאה בגרסה 8.0.0 מופיעה [בנתוני הגרסה][1].
סקירה כללית
PBL 8 כולל שיפורים בממשקי API קיימים, וגם הסרה של ממשקי API שהוצאו משימוש בעבר. הגרסה הזו של הספרייה כוללת גם ממשקי API חדשים למוצרים בחיוב חד-פעמי.
תאימות לאחור לשדרוג PBL
כדי לעבור ל-PBL 8, צריך לעדכן או להסיר חלק מההפניות הקיימות ל-API מהאפליקציה, כמו שמתואר ב[הערות לגבי הגרסה][8] ובחלקים מאוחרים יותר במדריך הזה להעברה.
שדרוג מ-PBL 6 או 7 ל-PBL 8
כדי לשדרג מ-PBL 6 או 7 ל-PBL 8, מבצעים את השלבים הבאים:
מעדכנים את גרסת התלות של ספריית החיובים ב-Play בקובץ
build.gradleשל האפליקציה.dependencies { def billingVersion = 8.0.0 implementation "com.android.billingclient:billing:$billingVersion" }(רלוונטי רק לשדרוג מגרסה 6 של PBL לגרסה 8 של PBL). טיפול בשינויים ב-API שקשורים למינויים באפליקציה.
בטבלה הבאה מפורטים ממשקי ה-API שקשורים למינויים שהוסרו ב-PBL 8 וממשקי ה-API החלופיים שבהם צריך להשתמש באפליקציה.
API שהוצא משימוש בעבר הוסר ב-PBL 8 API חלופי לשימוש setOldSkuPurchaseToken setOldPurchaseToken setReplaceProrationMode setSubscriptionReplacementMode setReplaceSkusProrationMode setSubscriptionReplacementMode מעדכנים את ההטמעה של השיטה [
queryProductDetailsAsync][9].יש שינוי בחתימה של השיטה [
ProductDetailsResponseListener.onProductDetailsResponse][2], ולכן צריך לבצע שינויים באפליקציה כדי להטמיע את [queryProductDetailsAsync][9]. מידע נוסף זמין במאמר בנושא [הצגת מוצרים שזמינים לקנייה][3].טיפול בממשקי ה-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 (מומלץ) מפעילים חיבור מחדש אוטומטי לשירות.
אם מתבצעת קריאה ל-API בזמן שהשירות מנותק, ספריית החיובים ב-Play יכולה לנסות ליצור מחדש את חיבור השירות באופן אוטומטי. מידע נוסף זמין במאמר בנושא [הפעלת חיבור מחדש אוטומטי של שירותים][6].
שינויים אופציונליים.
תמיכה ברכישות בהמתנה לתוכניות בתשלום מראש. מידע נוסף זמין במאמר בנושא [טיפול במינויים ובעסקאות בהמתנה][4].
מינויים לתשלומים וירטואליים. מידע נוסף זמין במאמר בנושא [שילוב של מינויים לתשלומים][5].
[1]: /google/play/billing/release-notes [2]: /reference/com/android/billingclient/api/ProductDetailsResponseListener#onProductDetailsResponse(com.android.billingclient.api.BillingResult,java.util.List%3Ccom.android.billingclient.api.ProductDetails%3E) [3]: /google/play/billing/integrate#show-products [4]: /google/play/billing/subscriptions#pending [5]: /google/play/billing/subscriptions#installments [6]: /google/play/billing/integrate#automatic-service-reconnection [8]: /google/play/billing/release-notes [9]: /reference/com/android/billingclient/api/BillingClient#queryProductDetailsAsync