המסמך הזה מכיל את נתוני הגרסה של ספריית החיוב ב-Google Play.
גרסה 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
, שיושקו במלואם בספריית החיובים ב-Play בגרסה 7.1.1. כדי לבדוק את השילוב באמצעות התכונה הזו, תצטרכו לשדרג ל-Play Billing Library בגרסה 7.1.1. יש באג שמשפיע רק על אפליקציות שבהן הבדיקה של שינויי חיוב מופעלת, והוא לא משפיע על שימוש רגיל. למידע נוסף, ראו בדיקת קודי התגובהBillingResult
.
גרסה 7.0.0 של ספריית החיובים ב-Google Play (14.05.2024)
הגרסה 7.0.0 של ספריית החיובים ב-Google Play והתוספים ל-Kotlin זמינות עכשיו.
סיכום השינויים
הוספנו ממשקי API לתמיכה במינויים בתשלומים.
- הוספנו את
ProductDetails.InstallmentPlanDetails
למינויים בסיסיים בתשלומים שהמשתמשים זכאים לרכוש. ממשק ה-API הזה עוזר לאפליקציה לזהות את תוכנית התשלומים ואת הגדרת ההתחייבות שלה, כדי לספק מידע קשור למשתמש. מידע נוסף זמין במדריך שלנו בנושא תשלומים בתשלומים.
- הוספנו את
הוספנו את
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 זמינות עכשיו.
סיכום השינויים
נוספה משתנה מונה חדש מסוג
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 Billing Library יש רישום ביומן נוסף, שמספק תובנות לגבי השימוש ב-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 שבו פונקציית ה-coroutine נכשלת עם השגיאה '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 זמינה עכשיו.
תיקוני באגים
- עדכנו את גרסת ברירת המחדל של ספריית החיוב ב-Google 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.
- הוספנו את ה-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()
הקוד הזה מפעיל קריאה חוזרת במקרה של תשובות שנכשלו.
שינויים בהתנהגות
גרסה 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()
מפעיל עכשיו קריאה חוזרת במקרה של תשובות שנכשלו
ספריית החיוב תמיד תפעיל את הפונקציה החוזרת (callback) 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.