- משאב: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- Methods
משאב: ProductPurchaseV2
משאב ProductPurchaseV2 מציין את הסטטוס של רכישת מוצר מתוך האפליקציה של משתמש.
| ייצוג ב-JSON |
|---|
{ "productLineItem": [ { object ( |
| שדות | |
|---|---|
productLineItem[] |
מכיל מידע ברמת הפריט לגבי ProductPurchaseV2. |
kind |
הסוג הזה מייצג אובייקט ProductPurchaseV2 בשירות androidpublisher. |
purchaseStateContext |
מידע על מצב הרכישה. |
testPurchaseContext |
מידע שקשור לרכישות לצורך בדיקה. ההגדרה הזו תהיה רלוונטית רק לרכישות לצורך בדיקה. |
orderId |
מזהה ההזמנה שמשויך לרכישה של המוצר מתוך האפליקציה. יכול להיות שהפרמטר לא יוגדר אם אין הזמנה שמשויכת לרכישה. |
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 בזמן שהמוצר הוענק. |
purchaseCompletionTime |
השעה שבה הרכישה בוצעה בהצלחה, כלומר השעה שבה PurchaseState השתנה ל-PURCHASED. השדה הזה לא יופיע עד שהתשלום יושלם. לדוגמה, אם המשתמש יזם עסקה בהמתנה (https://developer.android.com/google/play/billing/integrate#pending), השדה הזה לא יאוכלס עד שהמשתמש ישלים בהצלחה את השלבים הנדרשים להשלמת העסקה. הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: |
acknowledgementState |
פלט בלבד. מצב האישור של הרכישה. |
PurchaseStateContext
הקשר לגבי מצב הרכישה.
| ייצוג ב-JSON |
|---|
{
"purchaseState": enum ( |
| שדות | |
|---|---|
purchaseState |
פלט בלבד. מצב הרכישה. |
PurchaseState
מצבי רכישה אפשריים.
| טיפוסים בני מנייה (enum) | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
מצב הרכישה לא צוין. אסור להגדיר את הערך הזה. |
PURCHASED |
הרכישה בוצעה בהצלחה. |
CANCELLED |
הרכישה בוטלה. |
PENDING |
הרכישה בהמתנה ועדיין לא הושלמה. מידע נוסף על טיפול ברכישות בהמתנה זמין בכתובת https://developer.android.com/google/play/billing/integrate#pending. |
TestPurchaseContext
הקשר לרכישת ניסיון.
| ייצוג ב-JSON |
|---|
{
"fopType": enum ( |
| שדות | |
|---|---|
fopType |
סוג אמצעי התשלום של רכישת הבדיקה. |
FopType
סוגי fop אפשריים.
| טיפוסים בני מנייה (enum) | |
|---|---|
FOP_TYPE_UNSPECIFIED |
לא צוין סוג אמצעי התשלום. אסור להגדיר את הערך הזה. |
TEST |
הרכישה בוצעה באמצעות כרטיס בדיקה. |
ProductLineItem
מכיל מידע ברמת הפריט לגבי ProductPurchaseV2.
| ייצוג ב-JSON |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| שדות | |
|---|---|
productId |
מזהה המוצר שנרכש (לדוגמה, monthly001). |
productOfferDetails |
פרטי המבצע של הפריט הזה. |
ProductOfferDetails
פרטים על מוצר שמופיע בשורת רכישה.
| ייצוג ב-JSON |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| שדות | |
|---|---|
offerTags[] |
תגי המבצע העדכניים שמשויכים למבצע. הוא כולל תגים שעברו בירושה מאפשרות הרכישה. |
offerId |
מזהה המבצע. המאפיין הזה מופיע רק במבצעים. |
purchaseOptionId |
המזהה של אפשרות הרכישה. |
rentOfferDetails |
פרטי מבצעים על השכרת דירות. ההגדרה הזו תוגדר רק לפריטים להשכרה. |
offerToken |
הטוקן של המבצע לכל עסקה ששימש לרכישת הפריט הזה. |
quantity |
הכמות שמשויכת לרכישה של המוצר מתוך האפליקציה. |
refundableQuantity |
הכמות שעומדת בדרישות לקבלת החזר כספי, כלומר הכמות שלא קיבלה החזר כספי. הערך משקף החזרים כספיים חלקיים שמבוססים על כמות והחזרים כספיים מלאים. |
consumptionState |
פלט בלבד. מצב הצריכה של הרכישה. |
RentOfferDetails
בסוג הזה אין שדות.
פרטים על פריט להשכרה.
ConsumptionState
מצבי צריכה אפשריים.
| טיפוסים בני מנייה (enum) | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
לא צוין מצב הצריכה. אסור להגדיר את הערך הזה. |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
עדיין לא נצרך. |
CONSUMPTION_STATE_CONSUMED |
כבר נעשה בו שימוש. |
AcknowledgementState
סטטוס האישור של המוצר בחיוב חד-פעמי.
| טיפוסים בני מנייה (enum) | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
לא צוין סטטוס אישור. |
ACKNOWLEDGEMENT_STATE_PENDING |
הרכישה עדיין לא אושרה. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
הרכישה אושרה. |
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 אם יש הפסקות זמניות ידועות. |