REST Resource: purchases.products

משאב: 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

string

הסוג הזה מייצג אובייקט inappPurchase בשירות androidpublisher.

purchaseTimeMillis

string (int64 format)

הזמן שבו המוצר נרכש, במילישניות מאז ראשית הזמן (1 בינואר 1970).

purchaseState

integer

מצב הרכישה של ההזמנה. הערכים האפשריים הם: 0. נרכש 1. בוטל 2. בהמתנה

consumptionState

integer

מצב הצריכה של המוצר מתוך האפליקציה. הערכים האפשריים הם: 0. עדיין לא נעשה שימוש ב-1. צריכה

developerPayload

string

מחרוזת שמוגדרת על ידי המפתח ומכילה מידע נוסף על הזמנה.

orderId

string

מזהה ההזמנה שמשויך לרכישה של המוצר בתוך האפליקציה.

purchaseType

integer

סוג הרכישה של המוצר באפליקציה. השדה הזה מוגדר רק אם הרכישה לא בוצעה באמצעות תהליך החיוב הרגיל על רכישות באפליקציות. הערכים האפשריים הם: 0. בדיקה (כלומר, נרכש מחשבון לבדיקת רישיונות) 1. מבצע (כלומר, נרכש באמצעות קוד הטבה). לא כולל רכישות ב-Play Points. 2. מתוגמל (כלומר, מגיע מצפייה במודעת וידאו במקום מתשלום)

acknowledgementState

integer

מצב האישור של המוצר בתוך האפליקציה. הערכים האפשריים הם: 0. עדיין לא אושרה בקשה 1. מסירה אושרה

purchaseToken

string

טוקן הרכישה שנוצר כדי לזהות את הרכישה הזו. יכול להיות שהיא לא תופיע.

productId

string

המק"ט של המוצר מתוך האפליקציה. יכול להיות שהיא לא תופיע.

quantity

integer

הכמות שמשויכת לרכישה של המוצר מתוך האפליקציה. אם לא מציינים כמות, כמות ברירת המחדל היא 1.

obfuscatedExternalAccountId

string

גרסה מעורפלת של המזהה שמשויך באופן ייחודי לחשבון של המשתמש באפליקציה. הערך הזה מופיע רק אם הוא צוין באמצעות https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid בזמן ביצוע הרכישה.

obfuscatedExternalProfileId

string

גרסה מעורפלת של המזהה שמשויך באופן ייחודי לפרופיל של המשתמש באפליקציה. הערך הזה מופיע רק אם הוא צוין באמצעות https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid בזמן ביצוע הרכישה.

regionCode

string

קוד אזור החיוב של המשתמש לפי תקן ISO 3166-1 alpha-2 בזמן שהמוצר הוענק.

refundableQuantity

integer

הכמות שעומדת בדרישות לקבלת החזר כספי, כלומר הכמות שלא קיבלה החזר כספי. הערך משקף החזרים כספיים חלקיים שמבוססים על כמות והחזרים כספיים מלאים.

Methods

acknowledge

מאשר רכישה של פריט באפליקציה.

consume

הפונקציה צורכת רכישה של פריט באפליקציה.

get

בדיקת סטטוס הרכישה והשימוש בפריט בתוך האפליקציה.

קודי שגיאה

הפעולות של המשאב הזה מחזירות את קודי שגיאות ה-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 אם יש הפסקות זמניות ידועות בשירות.