הנושא הזה מכיל נתוני גרסה של ספריית החיובים ב-Google Play.
גרסה 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
בקריאה החוזרת (callback) של המאזינים.
- מפתחים צריכים להשתמש
הסרת את
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()
כדי לאחזר את הרכישות הפעילות. - רכישות שנצרכות: על מפתחים לעקוב אחר רכישות נצרכות ב שרתים משלהם.
- רכישות שבוטלו: משתמשים ב רכישות מבוטלות למפתחים.
- פרטים נוספים זמינים במאמר שאילתות על היסטוריית הרכישות
- רכישות ממתינות ורכישות שאושרו: יש להשתמש
BillingFlowParams.ProductDetailsParams.setOfferToken()
מקפיצה הודעת שגיאה (throw) לחריגה כשמפתחים מציינים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()
כדי ליצור מטען ייעודי (payload) שנדרש לדיווח על עסקאות שבוצעו דרך מבצעים חיצוניים.
- הוספת את
גרסה 6.1.0 של ספריית החיובים ב-Google Play (14.11.2023)
גרסה 6.1.0 של ספריית החיובים ב-Google Play והתוספים של Kotlin זמינים עכשיו זמינים.
סיכום השינויים
- נוספו ממשקי API לתמיכה במערכת חיוב חלופית בלבד (כלומר, ללא אפשרות בחירה של המשתמש)
- הוספת את
BillingClient.Builder.enableAlternativeBillingOnly()
כדי לאפשר באופן פונקציונלי את היכולת להציע מערכת חיוב חלופית בלבד. - הוספת את
BillingClient.isAlternativeBillingOnlyAvailableAsync()
כדי לבדוק את הזמינות של מערכת חיוב חלופית בלבד. - הוספת את
BillingClient.showAlternativeBillingOnlyInformationDialog()
כדי להציג תיבת דו-שיח עם מידע, שמיידעת את המשתמשים מתי מערכת חיוב חלופית בלבד שבו משתמשים. - הוספת את
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
כדי ליצור מטען ייעודי (payload) שנדרש כדי לדווח על עסקאות שבוצעו רק במערכת חיוב חלופית.
- הוספת את
- ממשקי ה-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
enum להחלפהProrationMode
חשוב לדעת ש-
ProrationMode
עדיין זמין לצורך תאימות לאחור סיבות נוספות.הוסר מזהה ההזמנה של
PENDING
רכישות.בעבר, מזהה ההזמנה תמיד ייווצר, גם אם הרכישה בהמתנה. החל מגרסה 6.0.0, לא ייווצר מזהה הזמנה עבור ברכישות ממתינות, ומזהה ההזמנה של הרכישות האלה יאוכלס אחרי שהרכישה מועברת
PURCHASED
.הוסרו
queryPurchases
ו-launchPriceConfirmationFlow
שיטות.השיטות
queryPurchases
ו-launchPriceConfirmationFlow
שמכילות סומנו בעבר כ'הוצא משימוש' הוסרו עכשיו מ'חיוב ב-Play' ספרייה מפתחים צריכים להשתמש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 של ספריית החיובים ב-Play, לא יוחזרו יותר
SERVICE_TIMEOUT
. גרסאות קודמות של PBL עדיין יחזירו את הקוד הזה.נוסף רישום ביומן.
הגרסה של ספריית החיובים ב-Play 6 כוללת רישום ביומן נוסף, שמאפשר תובנות לגבי השימוש ב-API (כמו הצלחה או כישלון) וחיבור השירות בעיות נפוצות. המידע הזה ישמש לשיפור הביצועים של Play ספריית החיובים ותמיכה טובה יותר בשגיאות.
גרסה 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.10.2022)
גרסה 5.1.0 של ספריית החיובים ב-Google Play והתוספים של Kotlin זמינים עכשיו זמינים.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- נוספה השיטה
ProductDetails.SubscriptionOfferDetails.getOfferId()
כדי לאחזר את מזהה המבצע. - נוספה השיטה
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
כדי לאחזר את מזהה המינוי הבסיסי. - הערך של
targetSdkVersion
עודכן ל-31.
גרסה 5.0 של ספריית החיובים ב-Google Play (11.05.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.02.2022)
גרסה 4.1.0 של ספריית החיובים ב-Google Play והתוספים של Kotlin זמינים עכשיו זמינים.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- הוספת את
BillingClient.showInAppMessages()
כדי לעזור בטיפול בדחיות של תשלומים על מינויים. כדי להשתמש בהודעות בתוך האפליקציה לטיפול בדחיות של תשלומים למינויים: טיפול בדחיות של תשלומים.
גרסה 4.0 של ספריית החיובים ב-Google Play (18.05.2021)
גרסה 4.0.0 של ספריית החיובים ב-Google Play והתוספים של Kotlin זמינים עכשיו זמינים.
סיכום השינויים
הכתובת
BillingClient.queryPurchasesAsync()
מחליפה אתBillingClient.queryPurchases()
שיוסר בגרסה עתידית.נוסף מצב חדש של החלפה למינוי
IMMEDIATE_AND_CHARGE_FULL_PRICE
.השיטה
BillingClient.getConnectionState()
נוספה כדי לאחזר את מצב החיבור של ספריית החיובים ב-Play.בוצע עדכון של 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.03.2021)
גרסה 3.0.3 של ספריית החיובים ב-Google Play, תוסף Kotlin ו-Unity יישומי הפלאגין זמינים עכשיו.
תיקוני באגים ב-Java ו-Kotlin
- תיקון דליפת זיכרון כאשר
endConnection()
נקראת. - פתרון בעיה כשספריית החיובים של Google Play נמצאת בשימוש באפליקציות שמשתמשות
מצב ההשקה של משימה יחידה. א'
onPurchasesUpdated()
הקריאה החוזרת (callback) תופעל כשממשיכים אפליקציה מסוימת ממרכז האפליקציות של Android ותיבת הדו-שיח של החיוב הוצגה לפני ההשעיה.
תיקוני באגים ב-Unity
- צריך לעדכן לגרסה 3.0.3 של Java כדי לתקן דליפת זיכרון ולפתור את הבעיה שמונעת רכישות כשממשיכים אפליקציה מסוימת ממרכז האפליקציות של Android ומהחיוב הייתה גלויה לפני ההשעיה.
גרסה 3.0.2 של ספריית החיובים ב-Google Play (24.11.2020)
גרסה 3.0.2 של ספריית החיובים ב-Google Play והתוסף Kotlin זמינות עכשיו.
תיקוני באגים
- תוקן באג בתוסף Kotlin שגרם לכך שהקורוטין נכשל עם השגיאה "כבר הופעל".
- תוקנו הפניות שלא נפתרו כשמשתמשים בתוסף Kotlin עם ספריית kotlinx.coroutines מגרסה 1.4 ואילך.
גרסה 3.0.1 של ספריית החיובים ב-Google Play (30.09.2020)
גרסה 3.0.1 של ספריית החיובים ב-Google Play והתוסף Kotlin זמינות עכשיו.
תיקוני באגים
- תוקן באג שגרם לכך שהאפליקציה נהרגה ושוחזרה במהלך תהליך החיוב,
לא ניתן להתקשר אל
PurchasesUpdatedListener
עם תוצאת הרכישה.
גרסה 3.0 של ספריית החיובים ב-Google Play (8.06.2020)
גרסה 3.0.0 של ספריית החיובים ב-Google Play, תוסף Kotlin ולפלאגין Unity זמינים עכשיו.
סיכום השינויים
- הוסרה התמיכה במק"ט מתגמל.
- הסרת את הפרמטרים
ChildDirected
ו-UnderAgeOfConsent
. - הוסרו שיטות מטען ייעודי (payload) של מפתחים שהוצאו משימוש.
- הוסרו שיטות שהוצאו משימוש
BillingFlowParams.setAccountId()
ו-BillingFlowParams.setDeveloperId()
. - הוסרו שיטות שהוצאו משימוש
BillingFlowParams.setOldSkus(String oldSku)
ו-BillingFlowParams.addOldSku(String oldSku)
. - נוספו הערות עם אפשרות null.
תיקוני באגים
SkuDetails.getIntroductoryPriceCycles()
הפונקציה מחזירהint
במקוםString
.- תוקן באג שבמסגרתו תהליך החיוב נחשב כמכיל פרמטרים נוספים גם אם לא הוגדרו פרמטרים נוספים.
גרסה 2.2.1 של ספריית החיובים ב-Google Play (20.05.2020)
גרסה 2.2.1 של ספריית החיובים ב-Google Play זמינה עכשיו.
תיקוני באגים
- עדכנת את גרסת ברירת המחדל של ספריית החיוב ב-Java Play התוסף Kotlin תלוי באפשרות הזו.
גרסה 2.2.0 של ספריית החיובים ב-Google Play ותמיכה ב-Unity (23.03.2020)
גרסה 2.2.0 של החיוב ב-Google Play מספקת פונקציונליות שעוזרת מפתחים מוודאים שהרכישות ישויכו למשתמש הנכון. השינויים האלה להחליף את הצורך לפתח פתרונות מותאמים אישית על סמך המטען הייעודי (payload) של המפתחים. בתור חלק מהעדכון הזה, הפונקציונליות של המטען הייעודי (payload) של המפתחים הוצאה משימוש והוא יוסר בגרסאות עתידיות. לקבלת מידע נוסף, כולל אלטרנטיבות מומלצות מטען ייעודי (payload) של מפתחים.
ספריית החיובים ב-Google Play 2 ל-Unity
בנוסף לגרסאות הנוכחיות של Java ו-Kotlin של חיוב ב-Google Play ספרייה 2, השקנו גרסה של הספרייה לשימוש עם Unity. משחק מפתחים שמשתמשים ב-API של Unity לרכישה מתוך האפליקציה יכולים לשדרג עכשיו את כל התכונות של ספריית החיובים ב-Google Play 2 וכדי להבטיח בשדרוגים הבאים לגרסאות עתידיות של ספריית החיובים ב-Google Play יותר קל.
מידע נוסף זמין במאמר הבא: שימוש בחיוב ב-Google Play עם Unity.
סיכום השינויים
- ספריית החיובים ב-Google Play ב-Java
- לחשבון
AcknowledgePurchaseParams
הוצא משימושsetDeveloperPayload()
וגםgetDeveloperPayload()
שיטות. - לחשבון
ConsumeParams
הוצא משימושsetDeveloperPayload()
וגםgetDeveloperPayload()
שיטות. - לחשבון
BillingFlowParams
שינה את השםsetAccountId()
אלsetObfuscatedAccountId()
, ומגבלת אורך מתועדת בפורמט של 64 תווים והגבלה אסור לציין פרטים אישיים מזהים (PII) בשדה הזה.setAccountId()
סומן כהוצאה משימוש שיוסר בגרסה העתידית של הספרייה. - ב
BillingFlowParams
נוספוsetObfuscatedProfileId()
שפועל בצורה דומהsetObfuscatedAccountId()
. מידע נוסף זמין במאמר הבא: עדכונים וחלופות למטען ייעודי (payload) של מפתחים. - ב-
Purchase
, הוספנו אתgetAccountIdentifiers()
שיטה להחזרת מזהי החשבון המעורפלים שהוגדרוBillingFlowParams
. - ב-
BillingClient
,loadRewardedSku()
שיטת הבידינג הזו סומנה כהוצאה משימוש במסגרת ההוצאה משימוש של מק"טים מתגמלים. מידע נוסף על ההוצאה משימוש זמין ב מרכז העזרה של Play Console
- לחשבון
גרסה 2.1.0 של ספריית החיובים ב-Google Play ותוסף Kotlin בגרסה 2.1.0 (10.12.2019)
גרסה 2.1.0 של ספריית החיובים ב-Google Play ותוסף Kotlin החדש זמינים עכשיו. התוסף Kotlin של ספריית החיובים ב-Play מספק אידיומטי חלופות API לצריכת Kotlin עם בטיחות null טובה יותר וקורוטינים. דוגמאות לקוד זמינות שימוש בספריית החיובים של Google Play.
הגרסה הזו כוללת את השינויים הבאים.
סיכום השינויים
- ב-
BillingFlowParams
,setOldSku(String oldSku)
הוצא משימוש והוחלף ב-setOldSku(String oldSku, String purchaseToken)
, כדי להבחין מתי כמה חשבונות במכשיר הם הבעלים של אותו מק"ט.
גרסה 2.0.3 של ספריית החיובים ב-Google Play (05.08.2019)
גרסה 2.0.3 של ספריית החיובים ב-Google Play זמינה עכשיו.
תיקוני באגים
- תוקן באג שגרם לכשלים של
querySkuDetailsAsync()
עם קוד מדי פעםDEVELOPER_ERROR
במקום להחזיר תוצאה מוצלחת.
גרסה 2.0.2 של ספריית החיובים ב-Google Play (08.07.2019)
גרסה 2.0.2 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל עדכונים למסמכי העזר ולא משנה את הספרייה החדשה.
גרסה 2.0.1 של ספריית החיובים ב-Google Play (06.06.2019)
גרסה 2.0.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
תיקוני באגים
- תוקן באג שבו הודעות ניפוי באגים הוחזרו כ-
null
במקרים מסוימים. - תוקנה בעיה אפשרית של דליפת זיכרון.
גרסה 2.0 של ספריית החיובים ב-Google Play (7.05.2019)
גרסה 2.0 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
חובה לאשר את הרכישה תוך שלושה ימים
Google Play תומכת ברכישת מוצרים מתוך האפליקציה שלכם (מתוך האפליקציה) או
מחוץ לאפליקציה (מחוץ לאפליקציה). כדי ש-Google Play יוכל להבטיח
חוויית רכישה עקבית, ללא קשר למקום שבו המשתמש רוכש את
חובה לאשר את כל הרכישות שהתקבלו דרך Google Play
ספריית החיובים בהקדם האפשרי אחרי הענקת הרשאה למשתמש. אם המיקום
לא אישרתם רכישה תוך שלושה ימים, המשתמש
מקבל החזר כספי, ו-Google Play מבטלת את הרכישה. עבור
עסקאות ממתינות (חדשה בגרסה 2.0), חלון של שלושה ימים
מתחיל כשהרכישה עוברת למצב PURCHASED
ולא חלה
בזמן שהרכישה במצב PENDING
.
לגבי מינויים, צריך לאשר כל רכישה שיש בה רכישה חדשה ב-Assistant. המשמעות היא שכל הרכישות הראשוניות, השינויים בתוכנית וההרשמות מחדש נדרשים שצריך להכיר, אבל לא צריך לאשר חידושים נוספים. שפת תרגום בודקים אם נדרש אישור על רכישה, אפשר לבדוק את האישור בשדה הרכישה.
האובייקט 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 נוספה תמיכה למפתחים מטען ייעודי (payload) – מחרוזות שרירותיות שאפשר לצרף לרכישות. אפשר לצרף לרכישה פרמטר מטען ייעודי (payload) של מפתח, אבל רק כאשר הרכישה מתבצעת מקבל אישור או נצרך. הדבר שונה ממטען ייעודי (payload) של מפתחים ב-AIDL, שבו ניתן לציין מטען ייעודי (payload) כשמפעילים את תהליך הרכישה. כי רכישות להפעיל את השינוי מחוץ לאפליקציה. מבטיחה שתמיד תהיה לכם הזדמנות להוסיף מטען ייעודי (payload) לרכישות.
כדי לגשת למטען הייעודי (payload) בספרייה החדשה, 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
.
בנוסף, Google Play Developer API כולל מצב PENDING
עבור Purchases.products
.
אין תמיכה בעסקאות בהמתנה עבור
למינויים.
הגרסה הזו כוללת גם סוג חדש של התראות בזמן אמת למפתחים,
OneTimeProductNotification
סוג ההתראה הזה מכיל הודעה אחת
שהערך שלו הוא ONE_TIME_PRODUCT_PURCHASED
או
ONE_TIME_PRODUCT_CANCELED
. סוג ההתראה הזה נשלח רק לגבי רכישות
שקשורה לעיכוב בתשלום, כמו מזומן.
כשמאשרים רכישות בהמתנה, חשוב לציין את האישור רק
מצב הרכישה הוא PURCHASED
ולא PENDING
.
שינויים ב-API
גרסה 2.0 של ספריית החיובים ב-Google Play כוללת מספר שינויים בממשק ה-API של תמיכה בתכונות חדשות והבהרת פונקציונליות קיימת.
צריכה אסינכרונית
consumeAsync()
עכשיו לוקח
אובייקט ConsumeParams
במקום purchaseToken
. ConsumeParams
מכיל את purchaseToken
בתור
וגם מטען ייעודי (payload) אופציונלי של מפתחים.
הגרסה הקודמת של consumeAsync()
הוסרה בגרסה הזו.
queryPurchaseHistoryAsync
כדי להפחית את הסיכוי לבלבול,
queryPurchaseHistoryAsync()
מחזירה
PurchaseHistoryRecord
במקום אובייקט Purchase
. האובייקט PurchaseHistoryRecord
הוא
זהה לאובייקט Purchase
, מלבד העובדה שהוא משקף רק את הערכים שהוחזרו על ידי
queryPurchaseHistoryAsync()
ולא מכיל את autoRenewing
,
orderId
ו-packageName
שדות. שימו לב ששום דבר לא השתנה עם
נתונים שהוחזרו — queryPurchaseHistoryAsync()
מחזירה את אותם נתונים כמו
לפני.
הערכים המוחזרים של Billing result
ממשקי API שהחזירו בעבר ערך מסוג מספר שלם BillingResponse
מחזירים עכשיו
BillingResult
לאובייקט. BillingResult
מכיל את המספר השלם BillingResponse
וגם
מחרוזת לניפוי באגים שבה אפשר להשתמש כדי לאבחן שגיאות. מחרוזת ניפוי הבאגים מבוססת על en-US
וגם לא מיועד להצגה למשתמשי קצה.
תיקוני באגים
SkuDetails.getIntroductoryPriceAmountMicros()
הפונקציה מחזירה עכשיוlong
במקוםString
.
ספריית החיובים ב-Google Play גרסה 1.2.2 (07.03.2019)
גרסה 1.2.2 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
תיקוני באגים
- תוקנה בעיה בקשר לשרשורים בגרסה 1.2.1. שיחות ברקע לא חסומות יותר בשרשור הראשי.
שינויים נוספים
- למרות שעדיין מומלץ להשתמש ב-thread הראשי, אפשר עכשיו ליצור ספריית החיובים ב-Google Play משרשור ברקע.
- יצירת האובייקט הועברה באופן מלא לשרשור ברקע כדי לצמצם את יש סיכוי לשגיאות ANR.
מהדורה 1.2.1 של ספריית החיובים ב-Play (04.03.2019)
גרסה 1.2.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
שינויים עיקריים
- הוספנו תמיכה במוצרים מתגמלים. למידע נוסף על אפשרויות מונטיזציה, אפשר לבקר בכתובת להוסיף תכונות ספציפיות למוצרים מתגמלים.
שינויים נוספים
- נוספו בנאים ציבוריים עבור
PurchasesResult
ו-SkuDetailsResult
כדי ליצור לבצע בדיקות בקלות רבה יותר. SkuDetails
אובייקטים יכולים להשתמש בשיטה חדשה,getOriginalJson()
.- כל הקריאות לשירות AIDL מטופלות עכשיו באמצעות תהליכונים ברקע.
תיקוני באגים
- פונקציות קריאה חוזרת (callback) ללא שגיאות לא יועברו יותר לממשקי API ציבוריים.
גרסה 1.2 של ספריית החיובים ב-Google Play (18.10.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()
, כפי שמוצג בקטע הקוד הבא:
בכיתת Builder BillingFlowParams
, השיטה setSku()
הוצא משימוש. במקום זאת, צריך להשתמש בשיטה 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.05.2018)
גרסה 1.1 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
סיכום השינויים
- נוספה תמיכה בהגדרת מצב יחסי ב
BillingFlowParams
כשמשדרגים או משדרגים לאחור מינוי קיים. - הדגל הבוליאני
replaceSkusProration
ב-BillingFlowParams
אינה נתמכת יותר. במקומה צריך להשתמש במדיניותreplaceSkusProrationMode
. launchBillingFlow()
מפעיל עכשיו קריאה חוזרת (callback) לתשובות שנכשלו.
שינויים בהתנהגות
גרסה 1.1 של ספריית החיובים ב-Google Play כוללת את ההתנהגות הבאה שינויים.
המפתחים יכולים להגדיר את replaceSkusProrationMode
בכיתה BillingFlowParams
ProrationMode
מספק פרטים נוספים על סוג החלק היחסי של החיוב במהלך השדרוג או השדרוג לאחור של
המינוי של המשתמש.
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
בכיתה BillingFlowParams
בעבר, מפתחים יכלו להגדיר סימון בוליאני כדי לחייב סכום יחסי עבור מינוי
בקשה לשדרוג. אנחנו תומכים ב-ProrationMode
, שכולל מידע מפורט יותר
ההוראות היחסיות, הדגל הבוליאני הזה כבר לא נתמך.
launchBillingFlow()
מפעיל עכשיו קריאה חוזרת לתשובות שנכשלו
ספריית החיובים תמיד תפעיל את הפרמטר PurhcasesUpdatedListener
התקשרות חזרה והחזרת BillingResponse
באופן אסינכרוני. הערך המוחזר הסינכרוני של BillingResponse
גם נשמרת.
תיקוני באגים
- יציאה תקינה בשלב מוקדם ב-methods אסינכרוניות כשהשירות מנותק.
Builder
אובייקטים של פרמטרים לא ישנו יותר אובייקטים שנוצרו.- בעיה 68087141:
launchBillingFlow()
להפעיל קריאה חוזרת (callback) לתשובות שנכשלו.
גרסה 1.0 של ספריית החיובים ב-Google Play (19.09.2017, הודעה)
גרסה 1.0 של ספריית החיובים ב-Google Play זמינה עכשיו. הגרסה הזו מכיל את השינויים הבאים.
שינויים חשובים
- הרשאת חיוב מוטמעת במניפסט של הספרייה. לא צריך להוסיף את התג
ההרשאה
com.android.vending.BILLING
בתוך המניפסט של Android. - Builder חדש נוסף אל
BillingClient.Builder
בכיתה. - הוצג דפוס ה-builder של
SkuDetailsParams
שישמשו ב-methods לשליחת שאילתות לגבי מק"טים. - מספר שיטות API עודכנו כדי לשמור על עקביות (אותו סדר ושמות של ארגומנטים להחזרה).
שינויים בהתנהגות
גרסה 1.0 של ספריית החיובים ב-Google Play כוללת את ההתנהגות הבאה שינויים.
סיווג BillingClient.Builder
BillingClient.Builder
מאותחל עכשיו באמצעות תבנית ה-Builder החדשה:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
השיטהlaunchBillingFlow נקראת עכשיו באמצעות מחלקה BillingFlowParams
כדי להתחיל בתהליך החיוב של רכישה או מינוי,
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()
ה-methods נכללו בדפוס 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
אובייקטים במקום מחלקה קודמת של wrapper, לנוחותכם ולשמירה על עקביות בכל ה-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)
אובייקט purchase result שלא ארוז
PurchaseResult
נפתחה כך שתהיה עקבית בכל ה-API שלנו:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
תיקוני באגים
- אין קוד תגובה בחבילה PURCHASES_UPDATED
- פתרון בעיות ב-ProxyBillingActivity ו-PurchasesUpdatedListener במהלך רוטציית מכשירים
גרסה 1 של תצוגה מקדימה למפתחים (12.06.2017, הודעה)
השקנו תצוגה מקדימה למפתחים, שנועדה לפשט את תהליך הפיתוח בכל הנוגע לחיוב, ומאפשרת למפתחים למקד את המאמצים בהטמעת לוגיקה ספציפית לאפליקציה ל-Android, כמו של ארכיטקטורת האפליקציות ומבנה הניווט.
הספרייה כוללת מספר תכונות ומחלקות נוחים לשימוש במהלך השילוב אפליקציות ל-Android עם Google Play Billing API. הספרייה מספקת גם שכבת הפשטה מעל שירות Android Interface Definition Language (AIDL), שמקל על המפתחים הממשק בין האפליקציה ל-Google Play Billing API.