המסמך הזה מכיל את נתוני הגרסה של ספריית החיוב ב-Google Play.
השקת גרסה 8.0.0 של ספריית החיובים ב-Google Play (30.06.2025)
הגרסה 8.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
פריטים מתוך האפליקציה ייקראו מעכשיו מוצרים חד-פעמיים.
כמה אפשרויות רכישה ומבצעים למוצרים חד-פעמיים.
עכשיו אתם יכולים להציע כמה אפשרויות רכישה ומבצעים למוצרים חד-פעמיים. כך תוכלו למכור את המוצרים שלכם בצורה גמישה, ולנהל אותם בצורה פשוטה יותר.
שיפור השיטה
queryProductDetailsAsync()
.לפני PBL 8.0.0, השיטה
queryProductDetailsAsync()
לא החזירה מוצרים שלא ניתן היה לאחזר. הסיבות לכך יכולות להיות למשל שהמוצר לא נמצא או שאין מבצעים זמינים למשתמש. בגרסה 8.0.0 של PBL, מוצרים שלא אוחזו מחזירים קוד סטטוס חדש ברמת המוצר שמספק מידע על מוצרים שלא אוחזו. חשוב לדעת שיש שינוי בחתימה שלProductDetailsResponseListener.onProductDetailsResponse()
, שמחייב שינויים באפליקציה. מידע נוסף זמין בקטע עיבוד התוצאה.חיבור אוטומטי מחדש לשירות.
הפרמטר החדש
BillingClient.Builder.enableAutoServiceReconnection()
ב-builder מאפשר למפתחים להביע הסכמה לחיבור אוטומטי מחדש לשירות. כך קל יותר לנהל את החיבורים, כי המערכת מטפלת באופן אוטומטי בחיבורים מחדש לשירות החיוב ב-Play, ומבטלת את הצורך לבצע קריאה ידנית ל-startConnection()
במקרה של ניתוק השירות. מידע נוסף זמין במאמר שחזור אוטומטי של חיבור.קודי תגובה משניים של השיטה
launchBillingFlow()
.עכשיו, BillingResult שמוחזר מ-
launchBillingFlow()
יכלול שדה של קוד תגובה משני. השדה הזה יאוכלס רק במקרים מסוימים כדי לספק סיבה ספציפית יותר לכישלון. בגרסה PBL 8.0.0, קוד המשנה PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS מוחזר לבקשת התמיכה כשהסכום בחשבון של המשתמש נמוך מהמחיר של הפריט שהוא מנסה לרכוש.הסרתם את השיטה
queryPurchaseHistory()
.השיטה
queryPurchaseHistory()
שסומנה בעבר כפריט שהוצא משימוש הוסרה עכשיו. במאמר שליחת שאילתות להיסטוריית הרכישות מפורט אילו ממשקי API חלופיים אפשר להשתמש בהם במקום זאת.הסרתם את השיטה
querySkuDetailsAsync()
.השיטה
querySkuDetailsAsync()
, שסומנה בעבר כפריט שהוצא משימוש, הוסרה עכשיו. במקום זאת, צריך להשתמש ב-queryProductDetailsAsync.הסרתם את השיטה
BillingClient.Builder.enablePendingPurchases()
.השיטה
enablePendingPurchases()
ללא פרמטרים, שסומנה בעבר כפריט שהוצא משימוש, הוסרה עכשיו. במקום זאת, אתם צריכים להשתמש ב-enablePendingPurchases(PendingPurchaseParams params)
. חשוב לזכור שהאפשרותenablePendingPurchases()
הוצאה משימוש, אבל היא זהה מבחינה פונקציונלית לאפשרותenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.הוסר השימוש ב-method
queryPurchasesAsync()
עם עומס יתר, שמקבל את הפרמטר skuType.השיטה
queryPurchasesAsync(String skuType, PurchasesResponseListener listener)
שסומנה בעבר כפריט שהוצא משימוש הוסרה עכשיו. לחלופין, אפשר להשתמש ב-queryPurchasesAsync(QueryPurchasesParams queryPurchasesParams, PurchasesResponseListener listener)
.
גרסה 7.1.1 של ספריית החיובים ב-Google Play (03.10.2024)
הגרסה 7.1.1 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
תיקוני באגים
- תוקנה באג בספריית החיובים ב-Play בגרסה 7.1.0 שקשור לבדיקת קודי התגובה
BillingResult
.
גרסה 7.1.0 של ספריית החיובים ב-Google Play (19.09.2024)
הגרסה 7.1.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
- שיפור הבטיחות של השרשור שקשור לניהול ולסטטוס החיבור.
- הוספנו שינויים חלקיים לצורך בדיקת קודי התגובה [
BillingResult
][billing-result], שיושקו במלואם בספריית החיובים ב-Play בגרסה 7.1.1. כדי לבדוק את השילוב באמצעות התכונה הזו, תצטרכו לשדרג ל-Play Billing Library 7.1.1. יש באג שמשפיע רק על אפליקציות שבהן [הבדיקה של שינויי החיוב מופעלת][enable-billing-overrides-testing], ולא משפיע על שימוש רגיל. מידע נוסף זמין במאמר בדיקת קודי התגובהBillingResult
. [billing-result]: /reference/com/android/billingclient/api/BillingResult [enable-billing-overrides-testing]: /google/play/billing/test-response-codes#enable-billing-overrides-testing
גרסה 7.0.0 של ספריית החיובים ב-Google Play (14.05.2024)
הגרסה 7.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
הוספנו ממשקי API לתמיכה במינויים בתשלומים.
- הוספנו את [
ProductDetails.InstallmentPlanDetails
][installment-details] למינויים בסיסיים בתשלומים שהמשתמשים זכאים לרכוש. ממשק ה-API הזה עוזר לאפליקציה לזהות את תוכנית התשלומים ואת הגדרת ההתחייבות שלה, כדי לספק למשתמש מידע קשור. מידע נוסף זמין במאמר [מדריך לתשלומים בתשלומים עבור מינויים][installments]. [installment-details]: /reference/com/android/billingclient/api/ProductDetails.InstallmentPlanDetails [installments]: /google/play/billing/subscriptions#installments
- הוספנו את [
הוספנו את
PendingPurchasesParams
ו-BillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
כדי להחליף אתBillingClient.Builder.enablePendingPurchases()
, שהוצא משימוש בגרסה הזו.- הפונקציה
enablePendingPurchases()
, שהוצאה משימוש, זהה מבחינה פונקציונלית לפונקציהenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.
- הפונקציה
הוספנו ממשקי API לתמיכה בעסקאות בהמתנה בתוכניות מינויים בתשלום מראש:
- כדי להפעיל עסקאות בהמתנה עבור מינויים בתשלום מראש, צריך להשתמש ב-
PendingPurchasesParams.Builder.enablePrepaidPlans()
יחד עםBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
. כשמוסיפים תמיכה, חשוב לוודא שהאפליקציה מנהלת גם בצורה נכונה את מחזור החיים של המינויים. מידע נוסף זמין במדריך בנושא רכישות בהמתנה. - הוספנו את הערכים
Purchase.PendingPurchaseUpdate
ו-Purchase.getPendingPurchaseUpdate()
כדי לאחזר את הוספת הכסף בהמתנה או את השדרוג או השדרוג לאחור למינוי קיים.
- כדי להפעיל עסקאות בהמתנה עבור מינויים בתשלום מראש, צריך להשתמש ב-
הוסר
BillingClient.Builder.enableAlternativeBilling()
,AlternativeBillingListener
ו-AlternativeChoiceDetails
.- במקום זאת, המפתחים צריכים להשתמש ב-
BillingClient.Builder.enableUserChoiceBilling()
עםUserChoiceBillingListener
ו-UserChoiceDetails
ב-call back של ה-listener.
- במקום זאת, המפתחים צריכים להשתמש ב-
הוסר
BillingFlowParams.ProrationMode
,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
ו-BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
. - המפתחים צריכים להשתמש ב-BillingFlowParams.SubscriptionUpdateParams.ReplacementMode
עםBillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)
במקום זאת. -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
. -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.הוסר
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()
. - המפתחים צריכים להשתמש ב-BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)
במקום זאת.BillingClient.queryPurchaseHistoryAsync()
הוצא משימוש ויוסר בגרסה עתידית. במקום זאת, המפתחים צריכים להשתמש בחלופות הבאות:- רכישות מאושרות ורכישות בהמתנה: משתמשים ב-
BillingClient.queryPurchasesAsync()
כדי לאחזר את הרכישות הפעילות. - רכישות שהושלמו: המפתחים צריכים לעקוב אחרי רכישות שהושלמו בשרתים שלהם.
- רכישות שבוטלו: משתמשים בממשק ה-API למפתחים voided-purchases.
- פרטים נוספים זמינים במאמר שליחת שאילתות לגבי היסטוריית הרכישות
- רכישות מאושרות ורכישות בהמתנה: משתמשים ב-
BillingFlowParams.ProductDetailsParams.setOfferToken()
עכשיו מפעילה חריגה כשהמפתחים מצייניםofferToken
ריק.הערך של
minSdkVersion
עודכן ל-21 והערך שלtargetSdkVersion
עודכן ל-34.
גרסה 6.2.1 של ספריית החיובים ב-Google Play (16.04.2024)
הגרסה 6.2.1 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
- תוקן באג ב-
BillingClient.showAlternativeBillingOnlyInformationDialog()
, שבו יכול להיות שלא תתבצע קריאה ל-AlternativeBillingOnlyInformationDialogListener
במקרים מסוימים בסיום תיבת הדו-שיח.
גרסה 6.2.0 של ספריית החיובים ב-Google Play (06.03.2024)
הגרסה 6.2.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
- הוספנו ממשקי API לתמיכה במבצעים חיצוניים
- הוספנו את
BillingClient.Builder.enableExternalOffer()
כדי לאפשר לכם לספק מבצעים חיצוניים. - הוספנו את
BillingClient.isExternalOfferAvailableAsync()
כדי לבדוק את הזמינות של הפונקציונליות של הצגת מבצעים מחוץ לאפליקציה. - הוספנו את
BillingClient.showExternalOfferInformationDialog()
כדי להציג למשתמשים תיבת דו-שיח עם מידע לפני שהם מועברים מחוץ לאפליקציה. - הוספנו את
BillingClient.createExternalOfferReportingDetailsAsync()
כדי ליצור עומס שימושי שנדרש לדיווח על עסקאות שבוצעו דרך מבצעים חיצוניים.
- הוספנו את
גרסה 6.1.0 של ספריית החיובים ב-Google Play (14.11.2023)
הגרסה 6.1.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
- הוספנו ממשקי API לתמיכה בחיוב חלופי בלבד (כלומר, בלי אפשרות בחירה של המשתמש)
- הוספנו את הערך
BillingClient.Builder.enableAlternativeBillingOnly()
כדי לאפשר באופן פונקציונלי להציע מערכת חיוב חלופית בלבד. - נוספה הפונקציה
BillingClient.isAlternativeBillingOnlyAvailableAsync()
כדי לבדוק את הזמינות של הצעת מערכת חיוב חלופית בלבד. - הוספנו את
BillingClient.showAlternativeBillingOnlyInformationDialog()
כדי להציג תיבת דו-שיח עם מידע כדי ליידע את המשתמשים כשנעשה שימוש בחיוב חלופי בלבד. - הוספנו את
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
כדי ליצור עומס שימושי שנדרש לדיווח על עסקאות שבוצעו בחיוב חלופי בלבד.
- הוספנו את הערך
- עדכנו את ממשקי ה-API לבחירת משתמש בחיוב
- נוספה
UserChoiceBillingListener
כדי להחליף את AlternativeBillingListener שסומן כמיושן. - נוספה
UserChoiceDetails
כדי להחליף אתAlternativeChoiceDetails
שסומן כ'לא בשימוש'. - נוספה הפונקציה
BillingClient.Builder.enableUserChoiceBilling()
כדי להחליף את הפונקציהBillingClient.Builder.enableAlternativeBilling()
שסומנה כמיושנת.
- נוספה
- הוספנו את הערך
BillingClient.getBillingConfigAsync()
כדי לאחזר את המדינה ב-Google Play.
גרסה 6.0.1 של ספריית החיובים ב-Google Play (22.06.2023)
הגרסה 6.0.1 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
מעדכנים את ספריית החיוב ב-Play כך שתהיה תואמת ל-Android 14.
גרסה 6.0 של ספריית החיובים ב-Google Play (10.05.2023)
הגרסה 6.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
נוספה Enumeration חדשה מסוג
ReplacementMode
כדי להחליף אתProrationMode
.הערה: השדה
ProrationMode
עדיין זמין מסיבות של תאימות לאחור.הסרת מזהה ההזמנה של רכישות ב-
PENDING
.בעבר, מזהה ההזמנה נוצר תמיד, גם אם הרכישה הייתה בהמתנה. החל מגרסה 6.0.0, לא נוצר מזהה הזמנה לרכישות בהמתנה. מזהה ההזמנה של הרכישות האלה יאוכלס אחרי שהרכישה תועבר לסטטוס
PURCHASED
.הוסרו השיטות
queryPurchases
ו-launchPriceConfirmationFlow
.השיטות
queryPurchases
ו-launchPriceConfirmationFlow
, שסומנו בעבר כפריט שהוצא משימוש, הוסרו עכשיו מ-Play Billing Library 6.0.0. מפתחים צריכים להשתמש ב-queryPurchasesAsync
במקום ב-queryPurchases
. אפשרויות חלופיות ל-launchPriceConfirmationFlow
מפורטות במאמר שינויי מחיר.נוסף קוד תגובה חדש לשגיאה ברשת.
קוד חדש של תגובה לשגיאת רשת,
NETWORK_ERROR
, נוסף החל מגרסה 6.0.0 של PBL. הקוד הזה מוחזר כשמתרחשת שגיאה בגלל בעיה בחיבור לרשת. השגיאות האלה שקשורות לחיבור לרשת דווחו בעבר כ-SERVICE_UNAVAILABLE
.עדכנו את
SERVICE_UNAVAILABLE
ואתSERVICE_TIMEOUT
.החל מגרסה 6.0.0 של PBL, שגיאות שנובעות מחריגה מזמן הקצוב לעיבוד יחזרו כ-
SERVICE_UNAVAILABLE
במקום כ-SERVICE_TIMEOUT
הנוכחי.ההתנהגות לא משתנה בגרסאות קודמות של PBL.
הוסר
SERVICE_TIMEOUT
.החל מגרסה 6.0.0 של PBL, הערך
SERVICE_TIMEOUT
לא יופיע יותר בתוצאה. גרסאות קודמות של PBL ימשיכו להחזיר את הקוד הזה.נוספה רישום ביומן.
במהדורה 6 של ספריית החיובים ב-Play יש רישום נוסף ביומן, שמספק תובנות לגבי השימוש ב-API (כמו הצלחה וכישלון) ובעיות בחיבור לשירות. המידע הזה ישמש לשיפור הביצועים של Play Billing Library ולתמיכה טובה יותר בטעויות.
גרסה 5.2.1 של ספריית החיובים ב-Google Play (22.06.2023)
הגרסה 5.2.1 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
מעדכנים את ספריית החיוב ב-Play כך שתהיה תואמת ל-Android 14.
גרסה 5.2 של ספריית החיובים ב-Google Play (06.04.2023)
הגרסה 5.2.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
- הוספנו כיתות לתמיכה בתהליכי חיוב חלופיים בנייד או בטאבלט למשתמשים בקוריאה הדרומית:
- נוספה השיטה
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()
לציון מזהה העסקה החיצוני של המינוי המקור. - הוספנו את השיטה
BillingClient.Builder.enableAlternativeBilling()
כדי לאפשר למשתמשים בקוריאה הדרומית לבחור אפשרות חיוב חלופית.
גרסה 5.1 של ספריית החיובים ב-Google Play (31 באוקטובר 2022)
הגרסה 5.1.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- נוספה השיטה
ProductDetails.SubscriptionOfferDetails.getOfferId()
לאחזור מזהה המבצע. - נוספה השיטה
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
לאחזור מזהה המינוי הבסיסי. - השדה
targetSdkVersion
עודכן ל-31.
גרסה 5.0 של ספריית החיובים ב-Google Play (11 במאי 2022)
הגרסה 5.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- השקנו מודל חדש למינויים, כולל ישויות חדשות שמאפשרות ליצור כמה מבצעים למוצר מינוי אחד. למידע נוסף, ראו את מדריך ההעברה.
- הוספנו את
BillingClient.queryProductDetailsAsync()
כדי להחליף אתBillingClient.querySkuDetailsAsync()
. - הוספנו את השיטה
setIsOfferPersonalized()
לדרישות הגילוי הנאות בנושא תמחור מותאם אישית באיחוד האירופי. למידע נוסף על השימוש בשיטה הזו, ראו ציון מחיר מותאם אישית. - הוסר
queryPurchases()
, שהוצא משימוש בעבר והוחלף ב-queryPurchasesAsync שהוצג בספריית החיובים ב-Google Play בגרסה 4.0.0. - הממשק
launchPriceChangeFlow
הוצא משימוש ויוסר בגרסה עתידית. מידע נוסף על חלופות זמין במאמר הפעלת תהליך אישור של שינוי מחיר. - הוסר המאפיין
setVrPurchaseFlow()
, ששימש בעבר ליצירת מופע של תהליך רכישה. בגרסאות קודמות, השיטה הזו הובילה את המשתמש להשלים את הרכישה במכשיר Android שלו. אחרי שתסירו את השיטה הזו, המשתמשים ישלימו את הרכישה דרך תהליך הרכישה הרגיל.
גרסה 4.1 של ספריית החיובים ב-Google Play (23 בפברואר 2022)
הגרסה 4.1.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- הוספנו את
BillingClient.showInAppMessages()
כדי לעזור לטפל בדחיות של תשלומים על מינויים. למידע נוסף על שימוש בהודעות באפליקציה לטיפול בתשלומים שנדחו, ראו טיפול בתשלומים שנדחו.
גרסה 4.0 של ספריית החיובים ב-Google Play (18 במאי 2021)
הגרסה 4.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
הוספנו את
BillingClient.queryPurchasesAsync()
כדי להחליף אתBillingClient.queryPurchases()
, שתושמט בגרסה עתידית.נוספה סטטוס 'החלפת מינוי' חדש
IMMEDIATE_AND_CHARGE_FULL_PRICE
.נוספה השיטה
BillingClient.getConnectionState()
לאחזור מצב החיבור של Play Billing Library.עדכנו את ה-Javadoc וההטמעה כדי לציין באיזה חוט אפשר להפעיל שיטה ואילו תוצאות של חוטים מתפרסמות.
הוספנו את
BillingFlowParams.Builder.setSubscriptionUpdateParams()
כדרך חדשה ליזום עדכוני מינויים. הערך הזה מחליף את הערכיםBillingFlowParams#getReplaceSkusProrationMode
,BillingFlowParams#getOldSkuPurchaseToken
,BillingFlowParams#getOldSku
,BillingFlowParams.Builder#setReplaceSkusProrationMode
ו-BillingFlowParams.Builder#setOldSku
שהוסרו.נוספו
Purchase.getQuantity()
ו-PurchaseHistoryRecord.getQuantity()
.נוספו
Purchase#getSkus()
ו-PurchaseHistoryRecord#getSkus()
. הם מחליפים אתPurchase#getSku
ו-PurchaseHistoryRecord#getSku
שהוסרו.בוצעה הסרה של
BillingFlowParams#getSku
, BillingFlowParams#getSkuDetails
ו-BillingFlowParams#getSkuType
.
גרסה 3.0.3 של ספריית החיובים ב-Google Play (12 במרץ 2021)
הגרסה 3.0.3 של ספריית החיובים ב-Google Play, התוסף ל-Kotlin והפלאגין ל-Unity זמינות עכשיו.
תיקוני באגים ב-Java וב-Kotlin
- תיקון דליפת זיכרון כשמתבצעת קריאה ל-
endConnection()
. - תיקון בעיה כשאפליקציות שמשתמשות במצב ההפעלה של משימה יחידה משתמשות בספריית החיובים ב-Google Play. קריאה חוזרת (callback) של
onPurchasesUpdated()
תופעל כשהמשתמשים ימשיכו להשתמש באפליקציה ממסוף Android, ותיבת הדו-שיח בנושא חיוב הייתה גלויה לפני ההשעיה.
תיקוני באגים ב-Unity
- עדכון לגרסה 3.0.3 של Java כדי לתקן דליפת זיכרון ולפתור בעיה שמונעת רכישות כשממשיכים להפעיל אפליקציה ממרכז האפליקציות של Android והתיבת הדו-שיח של החיוב הייתה גלויה לפני ההשעיה.
גרסה 3.0.2 של ספריית החיובים ב-Google Play (24 בנובמבר 2020)
הגרסה 3.0.2 של ספריית החיובים ב-Google Play והתוסף ל-Kotlin זמינות עכשיו.
תיקוני באגים
- תוקן באג בתוסף Kotlin שבו קורוטין נכשל עם השגיאה "Already resumed".
- תוקנו הפניות שלא נפתרו כשמשתמשים בהרחבה של Kotlin עם ספריית kotlinx.coroutines בגרסה 1.4 ואילך.
גרסה 3.0.1 של ספריית החיובים ב-Google Play (30 בספטמבר 2020)
הגרסה 3.0.1 של ספריית החיובים ב-Google Play והתוסף ל-Kotlin זמינות עכשיו.
תיקוני באגים
- תוקנה באג שגרם לכך שאם האפליקציה הופסקה ושוחזרה במהלך תהליך החיוב, יכול להיות שלא תתבצע קריאה ל-
PurchasesUpdatedListener
עם תוצאת הרכישה.
גרסה 3.0 של ספריית החיובים ב-Google Play (8 ביוני 2020)
הגרסה 3.0.0 של ספריית החיובים ב-Google Play, התוסף ל-Kotlin והפלאגין ל-Unity זמינות עכשיו.
סיכום השינויים
- הסרת התמיכה במק"טים של פרסים.
- הפרמטרים
ChildDirected
ו-UnderAgeOfConsent
הוסרו. - הוסרו שיטות של עומסי עבודה למפתחים שהוצאו משימוש.
- הוסרו השיטות הוצאו משימוש
BillingFlowParams.setAccountId()
ו-BillingFlowParams.setDeveloperId()
. - הוסרו השיטות הוצאו משימוש
BillingFlowParams.setOldSkus(String oldSku)
ו-BillingFlowParams.addOldSku(String oldSku)
. - נוספו הערות לגבי יכולת השימוש באפס.
תיקוני באגים
- הפונקציה
SkuDetails.getIntroductoryPriceCycles()
מחזירה עכשיו את הערךint
במקוםString
. - תוקן באג שבו תהליך החיוב התייחס לפרמטרים נוספים גם אם לא הוגדרו פרמטרים נוספים.
גרסה 2.2.1 של ספריית החיובים ב-Google Play (20.05.2020)
גרסה 2.2.1 של ספריית החיובים ב-Google Play זמינה עכשיו.
תיקוני באגים
- עודכנו הגרסה שמוגדרת כברירת מחדל של ספריית החיובים ב-Play ל-Java, שבה תלוי התוסף ל-Kotlin.
השקת גרסה 2.2.0 של ספריית החיובים ב-Google Play ותמיכה ב-Unity (23 במרץ 2020)
גרסה 2.2.0 של החיוב ב-Google Play מספקת פונקציונליות שעוזרת למפתחים לוודא שהרכישות משויכות למשתמש הנכון. השינויים האלה מחליפים את הצורך לפתח פתרונות בהתאמה אישית על סמך עומס העבודה של המפתחים. במסגרת העדכון הזה, הפונקציונליות של עומס העבודה למפתחים הוצאה משימוש ותוסר בגרסה עתידית. מידע נוסף, כולל חלופות מומלצות, זמין במאמר עומס עבודה למפתחים.
Google Play Billing Billing Library 2 for Unity
בנוסף לגרסאות הנוכחיות של Java ו-Kotlin של ספריית החיובים ב-Google Play 2, השקנו גרסה של הספרייה לשימוש ב-Unity. מפתחי משחקים שמשתמשים ב-Unity In-App Purchase API יכולים לשדרג עכשיו כדי ליהנות מכל התכונות של Google Play Billing Library 2, וכדי להקל על השדרוגים הבאים לגרסאות עתידיות של Google Play Billing Library.
מידע נוסף זמין במאמר שימוש בחיוב ב-Google Play עם Unity.
סיכום השינויים
- ספריית החיובים ב-Google Play ל-Java
- ב-
AcknowledgePurchaseParams
, שיטותsetDeveloperPayload()
ו-getDeveloperPayload()
שהוצאו משימוש. - ב-
ConsumeParams
, שיטותsetDeveloperPayload()
ו-getDeveloperPayload()
שהוצאו משימוש. - בשדה
BillingFlowParams
, שינינו את השם מ-setAccountId()
ל-setObfuscatedAccountId()
, תיעדנו הגבלת אורך של 64 תווים והגבלה שאוסרת להזין בשדה הזה פרטים אישיים מזהים (PII).setAccountId()
סומן כפריט שהוצא משימוש ויוסר בגרסה עתידית של הספרייה. - ב-
BillingFlowParams
, הוספנו אתsetObfuscatedProfileId()
שעובד באופן דומה ל-setObfuscatedAccountId()
. מידע נוסף זמין במאמר עדכונים וחלופות למפתחים לגבי עומס נתונים. - ב-
Purchase
, הוספנו את השיטהgetAccountIdentifiers()
כדי להחזיר את מזהי החשבון המעורפלים שהוגדרו ב-BillingFlowParams
. - ב-
BillingClient
, השיטהloadRewardedSku()
סומנה כמיושנת כחלק מההוצאה משימוש של מק"טים של פרסים. מידע נוסף על ההוצאה משימוש זמין במרכז העזרה של Play Console.
- ב-
גרסה 2.1.0 של ספריית החיובים ב-Google Play וגרסה 2.1.0 של התוסף ל-Kotlin (10 בדצמבר 2019)
גרסה 2.1.0 של ספריית החיובים ב-Google Play והתוסף החדש ל-Kotlin זמינים עכשיו. התוסף של Play Billing Library ל-Kotlin מספק חלופות רגילות ל-API לשימוש ב-Kotlin, עם תכונות מתקדמות יותר של null-safety ו-coroutines. דוגמאות לקוד זמינות במאמר שימוש בספריית החיוב ב-Google Play.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- ב-
BillingFlowParams
, הוחלפה המאפייןsetOldSku(String oldSku)
במאפייןsetOldSku(String oldSku, String purchaseToken)
כדי להבדיל בין מקרים שבהם מספר חשבונות במכשיר הם הבעלים של אותו מק"ט.
גרסה 2.0.3 של ספריית החיובים ב-Google Play (5 באוגוסט 2019)
גרסה 2.0.3 של ספריית החיובים ב-Google Play זמינה עכשיו.
תיקוני באגים
- תוקן באג שבו
querySkuDetailsAsync()
נכשל לפעמים עם הקודDEVELOPER_ERROR
במקום להחזיר תוצאה מוצלחת.
גרסה 2.0.2 של ספריית החיובים ב-Google Play (8 ביולי 2019)
גרסה 2.0.2 של ספריית החיובים ב-Google Play זמינה עכשיו. במהדורה הזו יש עדכונים למסמכי העזרה, אבל אין שינוי בפונקציונליות של הספרייה.
גרסה 2.0.1 של ספריית החיובים ב-Google Play (6 ביוני 2019)
גרסה 2.0.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
תיקוני באגים
- תוקן באג שגרם לכך שהודעות ניפוי באגים הוחזרו כ-
null
במקרים מסוימים. - תוקנה בעיה פוטנציאלית של דליפת זיכרון.
גרסה 2.0 של ספריית החיובים ב-Google Play (7 במאי 2019)
גרסה 2.0 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
יש לאשר רכישות תוך שלושה ימים
ב-Google Play יש תמיכה ברכישת מוצרים מתוך האפליקציה (In-app) או מחוץ לאפליקציה (Out-of-app). כדי שמערכת Google Play תוכל להבטיח חוויית רכישה עקבית, ללא קשר למקום שבו המשתמש רוכש את המוצר, עליכם לאשר את כל הרכישות שהתקבלו דרך ספריית החיובים ב-Google Play בהקדם האפשרי אחרי שמעניקים למשתמש הרשאה. אם לא תאשרו רכישה תוך שלושה ימים, המשתמש יקבל החזר כספי באופן אוטומטי, והרכישה ב-Google Play תבוטל. בעסקאות בהמתנה (חדשות בגרסה 2.0), חלון הזמנים של שלושת הימים מתחיל כשהרכישה עוברת למצב PURCHASED
, והוא לא רלוונטי כשהרכישה נמצאת במצב PENDING
.
במינויים, צריך לאשר כל רכישה שיש לה אסימון רכישה חדש. המשמעות היא שצריך לאשר את כל הרכישות הראשוניות, שינויי התוכניות וההרשמות מחדש, אבל לא צריך לאשר את החידושים הבאים. כדי לבדוק אם צריך אישור לרכישה, אפשר לבדוק את השדה 'אישור' ברכישה.
האובייקט Purchase
כולל עכשיו את השיטה isAcknowledged()
שמציינת אם הרכישה אושרה. בנוסף, Google Play Developer API כולל ערכי בווליאני של אישור גם עבור Purchases.products
וגם עבור Purchases.subscriptions
.
לפני שמאשרים רכישה, חשוב להשתמש בשיטות האלה כדי לקבוע אם הרכישה כבר אושרה.
אפשר לאשר רכישה באחת מהדרכים הבאות:
- במוצרים לשימוש חד-פעמי, משתמשים ב-
consumeAsync()
שנמצא ב-API של הלקוח. - למוצרים שלא נצרכו, משתמשים ב-
acknowledgePurchase()
שנמצא ב-API של הלקוח. - שיטת
acknowledge()
חדשה זמינה גם ב-Server API.
BillingFlowParams.setSku() הוסר
השיטה BillingFlowParams#setSku()
, שהוצאה משימוש בעבר, הוסרה מהגרסה הזו. לפני שמייצרים מוצרים בתהליך הרכישה, עכשיו צריך להפעיל את BillingClient.querySkuDetailsAsync()
ולהעביר את האובייקט SkuDetails
שנוצר אל BillingFlowParams.Builder.setSkuDetails()
.
דוגמאות לקוד זמינות במאמר שימוש בספריית החיוב ב-Google Play.
יש תמיכה ב-payload של מפתחים
בגרסה 2.0 של ספריית החיוב של Google Play נוספה תמיכה במטען עומס למפתח – מחרוזות שרירותיות שאפשר לצרף לרכישות. אפשר לצרף פרמטר של עומס עבודה למפתח לרכישה, אבל רק אחרי שהרכישה אושרה או נצרכה. המצב הזה שונה מטען נתונים של מפתח ב-AIDL, שבו אפשר לציין את טען הנתונים בזמן ההפעלה של תהליך הרכישה. עכשיו אפשר להתחיל רכישות מחוץ לאפליקציה, ולכן השינוי הזה מבטיח שתמיד תהיה לכם אפשרות להוסיף עומס שימושי לרכישות.
כדי לגשת לעומס המועמס בספרייה החדשה, אובייקטים מסוג Purchase
כוללים עכשיו את השיטה getDeveloperPayload()
.
מבצעים עקביים
כשמציעים מק"ט בהנחה, Google Play מחזיר עכשיו את המחיר המקורי של המק"ט כדי שתוכלו להראות למשתמשים שהם מקבלים הנחה.
SkuDetails
מכיל שתי שיטות חדשות לאחזור המחיר המקורי של המק"ט:
getOriginalPriceAmountMicros()
- הפונקציה מחזירה את המחיר המקורי ללא הפורמט של המק"ט לפני ההנחה.
getOriginalPrice()
- הפונקציה מחזירה את המחיר המקורי עם עיצוב מטבע נוסף.
עסקאות ממתינות
בגרסה 2.0 של ספריית החיוב ב-Google Play, חובה לתמוך ברכישות שבהן נדרשת פעולה נוספת לפני הענקת ההרשאה. לדוגמה, משתמש יכול לבחור לרכוש את המוצר שלכם מתוך האפליקציה בחנות פיזית באמצעות כסף מזומן. המשמעות היא שהעסקה הושלמה מחוץ לאפליקציה. בתרחיש כזה, צריך להעניק את ההרשאה רק אחרי שהמשתמש השלים את העסקה.
כדי להפעיל רכישות בהמתנה, צריך להפעיל את האפליקציה ולקרוא ל-enablePendingPurchases()
.
משתמשים ב-Purchase.getPurchaseState()
כדי לקבוע אם סטטוס הרכישה הוא PURCHASED
או PENDING
. חשוב לזכור שצריך להקצות הרשאה רק כשהסטטוס הוא PURCHASED
. כדי לבדוק אם יש עדכוני סטטוס של Purchase
:
- כשמפעילים את האפליקציה, צריך לבצע קריאה ל-
BillingClient.queryPurchases()
כדי לאחזר את רשימת המוצרים שלא נצרכו שמשויכים למשתמש. - קוראים ל-
Purchase.getPurchaseState()
בכל אובייקטPurchase
מוחזר. - מטמיעים את השיטה
onPurchasesUpdated()
כדי להגיב לשינויים באובייקטים מסוגPurchase
.
בנוסף, ממשק API של Google Play למפתחים כולל מצב PENDING
עבור Purchases.products
.
אין תמיכה בעסקאות בהמתנה עבור מינויים.
בגרסה הזו הוספנו גם סוג חדש של התראות למפתחים בזמן אמת, OneTimeProductNotification
. סוג ההתראה הזה מכיל הודעה אחת שהערך שלה הוא ONE_TIME_PRODUCT_PURCHASED
או ONE_TIME_PRODUCT_CANCELED
. סוג ההתראה הזה נשלח רק לגבי רכישות שמשויכות לאמצעי תשלום עם אישור ותשלום מאוחרים, כמו תשלום במזומן.
כשמאשרים רכישות בהמתנה, חשוב לאשר רק כשסטטוס הרכישה הוא PURCHASED
ולא PENDING
.
שינויים ב-API
גרסה 2.0 של ספריית החיובים ב-Google Play כוללת כמה שינויים ב-API שנועדו לתמוך בתכונות חדשות ולהבהיר את הפונקציונליות הקיימת.
consumeAsync
הפונקציה consumeAsync()
מקבלת עכשיו אובייקט ConsumeParams
במקום purchaseToken
. ConsumeParams
מכיל את purchaseToken
וגם מטען ייעודי (payload) אופציונלי למפתחים.
הגרסה הקודמת של consumeAsync()
הוסרה במהדורה הזו.
queryPurchaseHistoryAsync
כדי למזער את הבלבול, הפונקציה queryPurchaseHistoryAsync()
מחזירה עכשיו אובייקט PurchaseHistoryRecord
במקום אובייקט Purchase
. אובייקט PurchaseHistoryRecord
זהה לאובייקט Purchase
, מלבד העובדה שהוא משקף רק את הערכים שמוחזרים על ידי queryPurchaseHistoryAsync()
ולא מכיל את השדות autoRenewing
, orderId
ו-packageName
. שימו לב שלא השתנה דבר בנתונים שמוחזרים – queryPurchaseHistoryAsync()
מחזיר את אותם נתונים כמו קודם.
ערכי ההחזרה של BillingResult
ממשקי API שהחזירו בעבר ערך שלם מסוג BillingResponse
מחזירים עכשיו אובייקט מסוג BillingResult
. המשתנה BillingResult
מכיל את המספר השלם BillingResponse
וגם מחרוזת ניפוי באגים שאפשר להשתמש בה כדי לאבחן שגיאות. מחרוזת ניפוי הבאגים משתמשת ב-locale en-US והיא לא מיועדת להצגה למשתמשי קצה.
תיקוני באגים
- הפונקציה
SkuDetails.getIntroductoryPriceAmountMicros()
מחזירה עכשיוlong
במקוםString
.
גרסה 1.2.2 של ספריית החיובים ב-Google Play (7 במרץ 2019)
גרסה 1.2.2 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
תיקוני באגים
- תוקנה בעיה בחלוקת השיחות לשרשורים שהופיעה בגרסה 1.2.1. קריאות ברקע לא חוסמות יותר את ה-thread הראשי.
שינויים אחרים
- עדיין מומלץ להשתמש בשרשור הראשי, אבל עכשיו אפשר ליצור מופע של ספריית החיוב ב-Google Play משרשור רקע.
- תהליך היצירה הועבר באופן מלא לשרשור הרקע כדי לצמצם את הסיכוי ליצירת שגיאות ANR.
גרסת 1.2.1 של ספריית החיוב ב-Play (04 במרץ 2019)
גרסה 1.2.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
שינויים עיקריים
- הוספנו תמיכה במוצרים עם תגמולים. למידע נוסף על אפשרויות המונטיזציה, ראו הוספת תכונות ספציפיות למוצרים עם תגמולים.
שינויים אחרים
- נוספו קונסטרוקטורים ציבוריים ל-
PurchasesResult
ול-SkuDetailsResult
כדי להקל על הבדיקה. - אובייקטים מסוג
SkuDetails
יכולים להשתמש בשיטה חדשה,getOriginalJson()
. - כל הקריאות לשירותי AIDL מטופלות עכשיו על ידי שרשראות ברקע.
תיקוני באגים
- מודעות למעקב אחרי קריאות חזרה (callbacks) עם ערך null לא מועברות יותר לממשקי API ציבוריים.
גרסה 1.2 של ספריית החיוב ב-Google Play (18 באוקטובר 2018)
גרסה 1.2 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- ספריית החיובים של Google Play זמינה עכשיו ברישיון במסגרת הסכם הרישיון של Android Software Development Kit.
- הוספנו את ה-API
launchPriceChangeConfirmationFlow
, שמבקש מהמשתמשים לבדוק שינוי בהמתנה במחיר המינוי. - הוספנו תמיכה במצב חדש של חלוקת העלויות,
DEFERRED
, כשמשדרגים או משדרגים לאחור את המינוי של משתמש. - בכיתה
BillingFlowParams
, מחליפים אתsetSku()
ב-setSkuDetails()
. - תיקוני באגים קלים ואופטימיזציה של קוד.
אישור שינוי המחיר
עכשיו אתם יכולים לשנות את המחיר של מינוי ב-Google Play Console ולבקש מהמשתמשים לבדוק את המחיר החדש ולאשר אותו כשהם נכנסים לאפליקציה.
כדי להשתמש ב-API הזה, יוצרים אובייקט PriceChangeFlowParams
באמצעות skuDetails
של מוצר המינוי, ואז קוראים ל-launchPriceChangeConfirmationFlow()
. מטמיעים את PriceChangeConfirmationListener
כדי לטפל בתוצאה בסיום תהליך האישור של שינוי המחיר, כפי שמתואר בקטע הקוד הבא:
Kotlin
val priceChangeFlowParams = PriceChangeFlowParams.newBuilder() .setSkuDetails(skuDetailsOfThePriceChangedSubscription) .build() billingClient.launchPriceChangeConfirmationFlow(activity, priceChangeFlowParams, object : PriceChangeConfirmationListener() { override fun onPriceChangeConfirmationResult(responseCode: Int) { // Handle the result. } })
Java
PriceChangeFlowParams priceChangeFlowParams = PriceChangeFlowParams.newBuilder() .setSkuDetails(skuDetailsOfThePriceChangedSubscription) .build(); billingClient.launchPriceChangeConfirmationFlow(activity, priceChangeFlowParams, new PriceChangeConfirmationListener() { @Override public void onPriceChangeConfirmationResult(int responseCode) { // Handle the result. } });
בתהליך האישור של שינוי המחיר מוצגת תיבת דו-שיח עם פרטי התמחור החדשים, ומבקשים מהמשתמשים לאשר את המחיר החדש. התהליך הזה מחזיר קוד תגובה מסוג BillingClient.BillingResponse
.
מצב חדש לחלוקת העלויות
כשמשדרגים או משדרגים לאחור את המינוי של משתמש, אפשר להשתמש במצב חדש של חלוקת העלויות, DEFERRED
. המצב הזה מעדכן את המינוי של המשתמש בפעם הבאה שהוא יתחדש.
מידע נוסף על הגדרת מצב חלוקת התשלום מפורט במאמר הגדרת מצב חלוקת התשלום.
שיטה חדשה להגדרת פרטי מק"ט
בכיתה BillingFlowParams
, השיטה setSku()
הוצאה משימוש.
השינוי הזה נועד לבצע אופטימיזציה של תהליך החיוב ב-Google Play.
כשאתם יוצרים מופע חדש של BillingFlowParams
בלקוח לחיוב בתוך האפליקציה, מומלץ לעבוד ישירות עם אובייקט ה-JSON באמצעות setSkuDetails()
, כפי שמתואר בקטע הקוד הבא:
השיטה setSku()
הוצאה משימוש בכיתה BillingFlowParams
Builder. במקום זאת, צריך להשתמש בשיטה setSkuDetails()
, כפי שמתואר בקטע הקוד הבא. האובייקט שמוענק לאובייקט setSkuDetails()
מגיע מהשיטה querySkuDetailsAsync()
.
Kotlin
private lateinit var mBillingClient: BillingClient private val mSkuDetailsMap = HashMap<String, SkuDetails>() private fun querySkuDetails() { val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder() mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build() ) { responseCode, skuDetailsList -> if (responseCode == 0) { for (skuDetails in skuDetailsList) { mSkuDetailsMap[skuDetails.sku] = skuDetails } } } } private fun startPurchase(skuId: String) { val billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap[skuId]) .build() }
Java
private BillingClient mBillingClient; private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>(); private void querySkuDetails() { SkuDetailsParams.Builder skuDetailsParamsBuilder = SkuDetailsParams.newBuilder(); mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(), new SkuDetailsResponseListener() { @Override public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) { if (responseCode == 0) { for (SkuDetails skuDetails : skuDetailsList) { mSkuDetailsMap.put(skuDetails.getSku(), skuDetails); } } } }); } private void startPurchase(String skuId) { BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap.get(skuId)) .build(); }
גרסת 1.1 של ספריית החיוב ב-Play (07 במאי 2018)
גרסה 1.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- נוספה תמיכה באפשרות לציין מצב חלוקת התשלומים ב-
BillingFlowParams
כשמשדרגים או משדרגים לאחור מינוי קיים. - הדגל הבוליאני
replaceSkusProration
ב-BillingFlowParams
כבר לא נתמך. במקום זאת, אתם צריכים להשתמש ב-replaceSkusProrationMode
. launchBillingFlow()
מפעיל עכשיו קריאה חוזרת (callback) לתשובות שנכשלו.
שינויים בהתנהגות
גרסה 1.1 של ספריית החיובים ב-Google Play כוללת את השינויים הבאים בהתנהגות.
מפתחים יכולים להגדיר את replaceSkusProrationMode
בכיתה BillingFlowParams
ב-ProrationMode
מפורטים פרטים נוספים על סוג הקצאת החלק היחסי (proration) כשמשדרגים או משדרגים לאחור את המינוי של משתמש.
Kotlin
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build()
Java
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build();
ב-Google Play יש תמיכה במצבי הקצאת הכנסות הבאים:
IMMEDIATE_WITH_TIME_PRORATION |
ההחלפה תיכנס לתוקף באופן מיידי, וזמן התפוגה החדש יחושב לפי היחס של הזמן שנותר בתוקף, והמשתמש יזוכה או יחויב בהתאם. זו התנהגות ברירת המחדל הנוכחית. |
IMMEDIATE_AND_CHARGE_PRORATED_PRICE |
ההחלפה תיכנס לתוקף באופן מיידי, ומחזור החיובים לא ישתנה. תחויבו במחיר של התקופה שנותר.
הערה: האפשרות הזו זמינה רק לשדרוג של מינוי. |
IMMEDIATE_WITHOUT_PRORATION |
ההחלפה תיכנס לתוקף באופן מיידי, והמחיר החדש יחויב בפעם הבאה שהתשלום יחוזר. מחזור החיובים לא ישתנה. |
אין יותר תמיכה ב-replaceSkusProration
ב-class BillingFlowParams
בעבר, מפתחים יכלו להגדיר דגל בוליאני כדי לחייב בסכום מחולק על בקשה לשדרוג מינוי. מאחר שאנחנו תומכים ב-ProrationMode
, שמכיל הוראות מפורטות יותר לחלוקת העלויות, הדגל הבוליאני הזה כבר לא נתמך.
launchBillingFlow()
מפעיל עכשיו קריאה חוזרת במקרה של תשובות שנכשלו
ספריית החיוב תמיד תפעיל את הפונקציה החוזרת PurhcasesUpdatedListener
ותחזיר BillingResponse
באופן אסינכרוני. גם הערך המוחזר הסינכרוני של BillingResponse
נשמר.
תיקוני באגים
- יציאה מוקדמת בצורה תקינה בשיטות אסינכרניות כשהשירות מנותק.
Builder
אובייקטים של פרמטרים כבר לא משנים אובייקטים שנוצרו.- בעיה 68087141:
launchBillingFlow()
מפעיל עכשיו שיחה חוזרת במקרה של תגובות שנכשלו.
השקת גרסה 1.0 של ספריית החיובים ב-Google Play (19 בספטמבר 2017, הודעה)
גרסה 1.0 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו כוללת את השינויים הבאים.
שינויים חשובים
- הרשאת חיוב מוטמעת בתוך המניפסט של הספרייה. אין צורך להוסיף את ההרשאה
com.android.vending.BILLING
לתוך המניפסט של Android. - הכלי החדש ליצירת נכסים נוסף לכיתה
BillingClient.Builder
. - הוספנו תבנית build לכיתה
SkuDetailsParams
, לשימוש בשיטות לשליחת שאילתות לגבי מק"טים. - כמה שיטות API עודכנו כדי לשמור על עקביות (אותם שמות ואותן סדרי ארגונו של ארגומנטים להחזרה).
שינויים בהתנהגות
גרסה 1.0 של ספריית החיובים ב-Google Play מכילה את השינויים הבאים בהתנהגות.
הכיתה BillingClient.Builder
BillingClient.Builder
הוא מאותחל עכשיו באמצעות התבנית newBuilder:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
השיטה launchBillingFlow נקראת עכשיו באמצעות הכיתה BillingFlowParams
כדי להתחיל את תהליך החיוב על רכישה או מינוי, ה-method launchBillingFlow()
מקבל מכונה של BillingFlowParams
שמבוצעת בה איפוס של פרמטרים ספציפיים לבקשה:
Kotlin
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build() // Then, use the BillingFlowParams to start the purchase flow val responseCode = billingClient.launchBillingFlow(builder.build())
Java
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build(); // Then, use the BillingFlowParams to start the purchase flow int responseCode = billingClient.launchBillingFlow(builder.build());
דרך חדשה לשליחת שאילתות לגבי מוצרים זמינים
הארגומנטים לשיטות queryPurchaseHistoryAsync()
ו-querySkuDetailsAsync()
עברו אריזה בתבנית Builder:
Kotlin
val params = SkuDetailsParams.newBuilder() params.setSkusList(skuList) .setType(itemType) billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() { ... })
Java
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); params.setSkusList(skuList) .setType(itemType); billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})
התוצאה מוחזרת עכשיו באמצעות קוד תוצאה ורשימה של אובייקטים מסוג SkuDetails
במקום באמצעות סוג העטיפה הקודם, לנוחותכם ולשמירה על עקביות ב-API שלנו:
Kotlin
fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)
Java
public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)
הסדר של הפרמטרים השתנה בשיטה onConsumeResponse()
סדר הארגומנטים של onConsumeResponse
מהממשק ConsumeResponseListener
השתנה כדי לשמור על עקביות ב-API שלנו:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
אובייקט PurchaseResult לא ארוז
PurchaseResult
הוסר מהאריזה כדי לשמור על עקביות בממשקי ה-API שלנו:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
תיקוני באגים
- No response code in PURCHASES_UPDATED Bundle
- פתרון בעיות ב-ProxyBillingActivity וב-PurchasesUpdatedListener במהלך כיוון המכשיר
גרסה 1 של תצוגה מקדימה למפתחים (12 ביוני 2017, הכרזה)
השקנו תצוגה מקדימה למפתחים שמטרתה לפשט את תהליך הפיתוח בנוגע לחיוב, וכך לאפשר למפתחים להתמקד בהטמעת לוגיקה ספציפית לאפליקציה ל-Android, כמו ארכיטקטורת האפליקציה ומבנה הניווט.
הספרייה כוללת כמה תכונות וכיתות נוחות שאפשר להשתמש בהן כשמשלבים את אפליקציות Android עם Google Play Billing API. בנוסף, הספרייה מספקת שכבת הפשטה מעל השירות Android Interface Definition Language (AIDL), כך שמפתחים יכולים להגדיר בקלות את הממשק בין האפליקציה לבין Google Play Billing API.