משאב: ProductPurchase
משאב ProductPurchase מציין את הסטטוס של רכישת מוצר בתוך האפליקציה של משתמש.
| ייצוג ב-JSON |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| שדות | |
|---|---|
kind |
הסוג הזה מייצג אובייקט inappPurchase בשירות androidpublisher. |
purchaseTimeMillis |
הזמן שבו המוצר נרכש, במילישניות מאז ראשית הזמן (1 בינואר 1970). |
purchaseState |
מצב הרכישה של ההזמנה. הערכים האפשריים הם: 0. נרכש 1. בוטל 2. בהמתנה |
consumptionState |
מצב הצריכה של המוצר מתוך האפליקציה. הערכים האפשריים הם: 0. עדיין לא נעשה שימוש ב-1. צריכה |
developerPayload |
מחרוזת שמוגדרת על ידי המפתח ומכילה מידע נוסף על הזמנה. |
orderId |
מזהה ההזמנה שמשויך לרכישה של המוצר בתוך האפליקציה. |
purchaseType |
סוג הרכישה של המוצר באפליקציה. השדה הזה מוגדר רק אם הרכישה לא בוצעה באמצעות תהליך החיוב הרגיל על רכישות באפליקציות. הערכים האפשריים הם: 0. בדיקה (כלומר, נרכש מחשבון לבדיקת רישיונות) 1. מבצע (כלומר, נרכש באמצעות קוד הטבה). לא כולל רכישות ב-Play Points. 2. מתוגמל (כלומר, מגיע מצפייה במודעת וידאו במקום מתשלום) |
acknowledgementState |
מצב האישור של המוצר בתוך האפליקציה. הערכים האפשריים הם: 0. עדיין לא אושרה בקשה 1. מסירה אושרה |
purchaseToken |
טוקן הרכישה שנוצר כדי לזהות את הרכישה הזו. יכול להיות שהיא לא תופיע. |
productId |
המק"ט של המוצר מתוך האפליקציה. יכול להיות שהיא לא תופיע. |
quantity |
הכמות שמשויכת לרכישה של המוצר מתוך האפליקציה. אם לא מציינים כמות, כמות ברירת המחדל היא 1. |
obfuscatedExternalAccountId |
גרסה מעורפלת של המזהה שמשויך באופן ייחודי לחשבון של המשתמש באפליקציה. הערך הזה מופיע רק אם הוא צוין באמצעות https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid בזמן ביצוע הרכישה. |
obfuscatedExternalProfileId |
גרסה מעורפלת של המזהה שמשויך באופן ייחודי לפרופיל של המשתמש באפליקציה. הערך הזה מופיע רק אם הוא צוין באמצעות https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid בזמן ביצוע הרכישה. |
regionCode |
קוד אזור החיוב של המשתמש לפי תקן ISO 3166-1 alpha-2 בזמן שהמוצר הוענק. |
refundableQuantity |
הכמות שעומדת בדרישות לקבלת החזר כספי, כלומר הכמות שלא קיבלה החזר כספי. הערך משקף החזרים כספיים חלקיים שמבוססים על כמות והחזרים כספיים מלאים. |
Methods |
|
|---|---|
|
מאשר רכישה של פריט באפליקציה. |
|
הפונקציה צורכת רכישה של פריט באפליקציה. |
|
בדיקת סטטוס הרכישה והשימוש בפריט בתוך האפליקציה. |
קודי שגיאה
הפעולות של המשאב הזה מחזירות את קודי שגיאות ה-HTTP הבאים:
| קוד שגיאה | סיבה | תיאור | רזולוציה |
|---|---|---|---|
400 |
invalidPurchaseState |
הרכישה לא במצב שמאפשר לבצע את הפעולה המבוקשת. לדוגמה, יכול להיות שאתם מנסים לאשר רכישה שכבר נעשה בה שימוש או לבטל מינוי שלא פעיל. | לפני שמנסים לבצע את הפעולה, כדאי לבדוק את המצב הנוכחי של המשאב באמצעות ה-API המתאים מסוג Get. מוודאים שהמשאב נמצא במצב המתאים לפעולה. |
400 |
invalidValue |
צוין ערך לא תקין בבקשה. השגיאה הזו מוחזרת לעיתים קרובות כשפורמט טוקן הרכישה שגוי או כשהוא לא תקין. | מתקנים את הערך הלא תקין של השדה בגוף הבקשה או בפרמטרים על סמך הפניה ל-API. |
400 |
productNotOwnedByUser |
אסימון הרכישה שסופק תקין, אבל המשתמש לא מחזיק כרגע במוצר. מצב כזה יכול לקרות אם הרכישה קיבלה החזר כספי, בוטלה או שפג תוקפה לפני האישור. | לפני שמנסים לבצע את הפעולה, כדאי לבדוק את המצב הנוכחי של המשאב באמצעות ה-API המתאים מסוג Get. מוודאים שהמשאב נמצא במצב המתאים לפעולה. |
400 |
purchaseTokenMismatch |
אסימון הרכישה שסיפקת לא תואם לרכישה, לשם החבילה, למזהה המינוי או למזהה המוצר. | צריך לוודא שכל הפרטים בבקשה נכונים ותואמים זה לזה. |
400 |
required |
חסר שדה או פרמטר חובה בבקשה. | כדאי לעיין במסמכי התיעוד בנושא API כדי לוודא שכללתם את כל שדות החובה והפרמטרים הנדרשים. |
400 |
unsupportedIabType |
הפעולה לא נתמכת בסוג החיוב מתוך האפליקציה שצוין. | מוודאים ששיטת ה-API תואמת לסוג הפריט שמנוהל. |
403 |
userInsufficientPermission |
למשתמש אין מספיק הרשאות לביצוע הפעולה המבוקשת. | מוודאים שלמשתמש המאומת יש את ההרשאות הנדרשות ב-Google Play Console. פרטים נוספים מופיעים במאמר בנושא שימוש בחשבון שירות. |
404 |
notFound |
לא נמצא המשאב המבוקש. | מוודאים שהמזהים (לדוגמה: טוקן רכישה, שם חבילה, מזהה מוצר, מזהה מינוי) נכונים. |
409 |
concurrentUpdate |
היה ניסיון לעדכן אובייקט שנמצא בתהליך עדכון בו-זמני. | מנסים לשלוח שוב את הבקשה עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff). מומלץ להימנע משינויים בו-זמניים באותו משאב. |
5xx |
Generic error |
שגיאה כללית בשרת של Google Play. | צריך לנסות לשלוח את הבקשה שוב. אם הבעיה נמשכת, אפשר לפנות למנהל החשבון ב-Google Play או לשלוח בקשת תמיכה. כדאי לבדוק בלוח הבקרה של סטטוס Play אם יש הפסקות זמניות ידועות בשירות. |