יכול להיות שתצטרכו לבצע פעולות ניהול לגבי מינויים או רכישות חד-פעמיות במסגרת הפעילות השוטפת של העסק. לדוגמה, יכול להיות ששירות הלקוחות יצטרך להנפיק החזרים כספיים מלאים או חלקיים למשתמשים, או שצריך לבטל הרשאות במקרים מסוימים. אתם יכולים לנהל את ההזמנות מ-Play Console. אם אתם רוצים לנהל אותן מהמערכת שלכם, תוכלו לעשות זאת באמצעות Google Play Developer API.
ביטול מינויים
משתמשים או מפתחים יכולים לבטל מינויים.
ביטולים שהמשתמשים יזמו
משתמשים יכולים לבטל מינוי ל-Google Play בכל שלב באמצעות חנות Play. אם רלוונטי, עליכם גם לספק למשתמשים אפשרות לבטל את המינויים שלהם באפליקציה ובאתר.
הדרך הפשוטה ביותר לאפשר למשתמשים לבטל את המינוי מרצונם היא להוסיף לאפליקציה קישורי עומק לחנות Play, שבהם הם יכולים לראות ולנהל את המינויים שלהם.
ביטולים ביוזמת המפתח
כמפתחים, יכול להיות שתצטרכו גם להפעיל ביטולים מהקצה העורפי.
באמצעות ה-API של purchases.subscriptions.cancel
אפשר לבטל רכישה של מינוי.
לדוגמה, אפשר להשתמש בשיטה הזו כדי להשבית שירות מדור קודם.
ביטול המינוי לא יזכה את המשתמש בהחזר כספי, והוא ימשיך לקבל גישה עד לסיום תקופת החיוב הנוכחית.
בעזרת השיטה הזו אפשר לציין את סוגי הביטולים הבאים בפרמטר cancellationType
בגוף הבקשה:
USER_REQUESTED_STOP_RENEWALS: ביטול המינוי כאילו המשתמשים ביצעו את הביטול דרך חנות Play. תשלומי התשלומים יתמשכו עד לסיום תקופת ההתחייבות הנוכחית. המשתמשים יכולים לשחזר את המינוי בחנות Play לפני שתוקפו פג, או להירשם מחדש אחרי שתוקפו פג, אם האפשרות הזו מופעלת במינוי הבסיסי.
DEVELOPER_REQUESTED_STOP_PAYMENTS: ביטול המינוי וחסימת תשלומים נוספים. משתמשים לא יכולים לשחזר את המינוי או להירשם אליו מחדש מחנות Play, אבל אתם יכולים לאפשר להם להירשם מחדש באפליקציה.
מאפשרים למשתמשים לשחזר מינויים שעדיין בתוקף
בתרחישים מסוימים, כדאי לאפשר למשתמשים לשחזר מינויים שעדיין בתוקף ממרכז המינויים של Play אחרי שמפעילים את הביטול כמפתחים. לדוגמה, יכול להיות שתרצו לספק תהליך ביטול מותאם אישית באפליקציה. על סמך הלוגיקה העסקית שלכם, תוכלו להחליט אילו ביטולים שהופעלו מהקצה העורפי יוכלו המשתמשים לשחזר.
כדי לציין שמשתמש יכול לשחזר את הביטול, שולחים בקשת POST ל-API של purchases.subscriptions.cancel
ומגדירים את פרמטר הבקשה cancellationType
לערך USER_REQUESTED_STOP_RENEWAL
.
דוגמה:
- טוקן הרכישה של המינוי
1a2b3c4d5e6f7g8h9i0j
- שם החבילה של האפליקציה
com.your.app
- מזהה המינוי
your-subscription-product
בקשת HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
גוף הבקשה:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
משתמשים יכולים להירשם מחדש למינוי שתוקפו פג
כדי לאפשר הרשמה מחדש למינוי שפג תוקפו, צריך להפעיל את האפשרות Resubscribe בתוכנית הבסיסית של המינוי, ואז לבטל את המינוי על ידי הגדרת הפרמטר cancellationType
לערך USER_REQUESTED_STOP_RENEWAL
.
לאפשר למשתמשים להירשם מחדש רק באפליקציה
אם הגדרתם את הפרמטר cancellationType
לערך DEVELOPER_REQUESTED_STOP
_PAYMENTS
או לא הגדרתם את הפרמטר cancellationType
, המשתמשים לא יוכלו לשחזר את המינוי שלהם ממרכז המינויים של Play. עם זאת, המשתמשים יכולים להירשם שוב למינוי דרך האפליקציה שלכם במקרה הצורך.
הפעולה הזו תגרום להפעלת התראה בזמן אמת למפתחים מסוג SUBSCRIPTION_CANCELED
. עליכם לטפל בביטולים האלה לפי ההוראות שמפורטות בקטע ביטולים.
דחיית החיוב
משתמשים ב-subscriptions.defer
כדי להאריך את תקופת הזכאות למינוי. במהלך תקופת ההשהיה, המשתמש יישאר רשום למינוי לתוכן שלכם, אבל לא יחויב על הזמן הנוסף. כשמאחרים את החיוב על מינוי, פרטי הסטטוס מתעדכנים בהתאם, והם מופיעים בשדה expiryTime
בפרטים של סטטוס הרכישה:
- במינויים פעילים בתשלום קבוע, החיוב נדחה והתאריך הבא לחידוש המינוי מתארך.
- בתוכניות בתשלום מראש, החיוב המאוחר מאריך את מועד התפוגה.
דוגמאות לשימוש בחיוב נדחה:
- נותנים למשתמשים גישה ללא עלות כמבצע מיוחד, למשל שבוע אחד בחינם למנויים קיימים תמורת מילוי סקר משוב.
- לתת ללקוחות גישה ללא עלות כמחווה של שירות לקוחות, למשל אחרי הפסקה ממושכת בשירות שעלולה הייתה להשפיע על היכולת שלהם להשתמש בשירות.
אפשר לדחות את החיוב בטווח של יום אחד עד שנה לכל קריאה ל-API. כדי לדחות עוד יותר את סיום התוקף של ההרשאה, צריך לבצע קריאה חוזרת ל-API לפני תאריך התפוגה החדש.
הפעולה הזו תגרום להפעלת התראה בזמן אמת למפתחים מסוג SUBSCRIPTION_DEFERRED
. בקטע מידע על מינויים מוסבר איך לטפל באירועים האלה.
דוגמה:
שירות הסטרימינג FitnessGoals רוצה להפעיל קידום מכירות כדי לעודד פעילות גופנית סדירה בפברואר.
הם מחליטים להציע חודש נוסף של שירות לכל מינוי שמתאמן עם FitnessGoals לפחות 10 פעמים במהלך חודש פברואר.
הם עוקבים אחרי תוצאות האתגר, וב-1 במרץ הם קוראים ל-
subscriptions.defer
API לכל רכישה של מינוי פעיל שמשתייכת למשתמשים שעמדו באתגר בפברואר.המשתמשים האלה נהנים מחודש נוסף של סרטוני אימון רגילים ללא עלות, והם מספרים לכל החברים שלהם איך FitnessGoals עוזרת להם לשמור על בריאות!
מתן החזרים כספיים וביטולים
יש הרבה מצבים שבהם תרצו להנפיק החזר כספי על מינוי או על רכישה חד-פעמית, או לבטל את הגישה אליהם.
מתן החזר כספי מלא על הזמנה לפי מזהה ההזמנה
באמצעות ה-API של orders.refund
תוכלו להנפיק החזרים כספיים מלאים על כל הזמנה תוך שלוש שנים ממועד הרכישה.
השיטה orders.refund
מקבלת פרמטר ביטול שמציין אם צריך לבטל את הגישה או לא, בנוסף להענקת ההחזר הכספי.
אם תשלחו ביטול עם הבקשה להחזר כספי על רכישת מינוי, המינוי יבוטל באופן מיידי ותישלח SUBSCRIPTION_REVOKED
התראה בזמן אמת למפתחים. במדריך לניהול מחזור החיים של מינויים, בקטע ביטולים מוסבר איך לטפל באירועים האלה.
דוגמה:
כדי לחגוג את תחילת המונדיאל החדש, האפליקציה של הספורט האלקטרוני Football-Not-Soccer מחליטה לערוך הגרלה על גופיות וירטואליות בחינם לכל המשתמשים שירכשו ערכות קבוצה חדשות ב-24 השעות הראשונות.
ב-Football-Not-Soccer נעשה שימוש ב-API
orders.refund
בלי להעביר פרמטר ביטול כדי להחזיר את התשלום על רכישות של חולצות למנצחים.
ביטול מינוי והחזר כספי באמצעות טוקן רכישה
בתרחישי שימוש מסוימים, יכול להיות שתצטרכו לבטל את הגישה למינוי של משתמש ולספק החזר כספי. מערכת החיוב ב-Play מציעה שיטות ביטול, כולל החזרים כספיים מלאים והחזרים כספיים חלקיים, דרך ה-API של subscriptionsv2.revoke
. באמצעות נקודת הקצה הזו, אפשר לציין את הערך revocationContext
כדי לקבוע איך מחושב ההחזר הכספי.
הפעולה הזו מפעילה התראה בזמן אמת למפתחים מסוג SUBSCRIPTION_REVOKED
. האפליקציה צריכה לטפל בביטולים האלה כפי שמתואר בקטע ביטולים.
דוגמה:
- רכישה באמצעות טוקן הרכישה
1a2b3c4d5e6f7g8h9i0j
- אפליקציה עם שם החבילה
com.your.app
- הכוונה להנפיק החזר כספי מחולק
בקשת HTTP POST:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
גוף הבקשה:
{
"revocationContext": {
"proratedRefund": {}
}
}
החזרים כספיים מלאים
אם צריך לסיים מינוי ולהנפיק החזר כספי מלא על התקופה הנוכחית של החיוב, צריך להנפיק החזר כספי מלא. משתמשים בפונקציה purchases.subscriptionsv2.revoke
ומגדירים את "fullRefund": {}
כסוג ההחזר.
דוגמה:
למריה יש מינוי חודשי של 30 יום ל-SuperMovies עם חידוש אוטומטי. מריה נתקלה בבעיות טכניות שמונעות ממנה לגשת לתוכן. היא פונה לשירות הלקוחות ביום השלישי של מחזור החיובים שלה ומציינת שלעולם לא קיבלה גישה למינוי.
שירות הלקוחות מאתר במערכת את פרטי הרכישה של המינויים של מרי ומפעיל קריאה ל-
purchases.subscriptionsv2.revoke
כדי לבקש החזר כספי מלא.שירות הלקוחות מודיע למריה שהיא תקבל החזר כספי של 100% ממחיר המינוי, והיא כבר לא רשומה למינוי.
החזרים כספיים חלקיים
אם אתם צריכים לסיים מינוי ולתת החזר כספי חלקי על יתרת זמן הזכאות, עליכם להנפיק החזר כספי יחסי. משתמשים בפונקציה purchases.subscriptionsv2.revoke
ומגדירים את "proratedRefund": {}
כסוג ההחזר.
דוגמה:
למריה יש מינוי חודשי של 30 יום ל-SuperMovies עם חידוש אוטומטי. היא משתמשת בשירות כבר זמן מה. מרי פונה לשירות הלקוחות ביום ה-15 של מחזור החיובים שלה ומציינת שהיא עוברת לחו"ל ולא תוכל להשתמש בשירות החל מהיום הבא.
שירות הלקוחות מאתר במערכת את פרטי הרכישה של המינוי של מרי ומפעיל קריאה ל-
purchases.subscriptionsv2.revoke
כדי לבקש החזר כספי יחסי.שירות הלקוחות מודיע למריה שהיא תקבל החזר כספי של כ-50% ממחיר המינוי, והגישה לשירות תבוטל באופן מיידי.