Method: getOrderDetails

לקבל הזמנה שמספקת את הבסיס לשותפי Google לחיוב משתמשי הקצה.

אם נקודת הקצה נתקלת בשגיאה במהלך עיבוד הבקשה, התשובה מנקודת הקצה הזו תהיה מסוג ErrorResponse.

אם השיטה הזו לא מחזירה HTTP 200, התשובות לשאילתה הזו יכולות להיות ריקות. גוף התגובה הוא ריק במצבים שבהם ErrorResponse עם תיאור ברור יכול לעזור לתוקפים להבין את מזהה החשבון של מבצע השילוב של התשלומים של משלבים אחרים. במצבים כאלה, שבהם מפתח החתימה לא תואם, המזהה של משלב התשלומים לא נמצא או שמפתח ההצפנה לא היה ידוע, השיטה הזו תחזיר קוד HTTP 404 עם גוף ריק. אם ניתן לאמת את חתימת הבקשה, בגוף התגובה יוחזר מידע נוסף לגבי השגיאה.

בקשה לדוגמה נראית כך:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "IntegratorFakeAccount",
  "orderLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City"
  }
}

דוגמה לתשובה:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "order": {
    "timestamp": "1517992525972",
    "orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
    "currencyCode": "USD",
    "subTotalAmount": "399000000",
    "totalAmount": "459000000",
    "taxes": [],
    "items": [
      {
        "description": "YouTube TV membership",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "399000000"
      },
      {
        "description": "Showtime",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "6000000"
      }
    ]
  }
}

בקשת HTTP

POST https://vgw.googleapis.com/secure-serving/gsp/v1/getOrderDetails/:PIAID

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

ייצוג JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
שדות
requestHeader

object (RequestHeader)

חובה: כותרת משותפת לכל הבקשות.

paymentIntegratorAccountId

string

חובה: מזהה החשבון של מבצע השילוב של התשלומים שמזהה את מבצע הקריאה ואת המגבלות החוזיות המשויכות לאינטראקציה הזו.

orderLookupCriteria

object (OrderLookupCriteria)

חובה: קריטריונים המציינים את הסדר שיש לחפש.

requestOriginator

object (RequestOriginator)

אופציונלי: מידע על הארגון או על קבוצת המשנה הארגונית שיצרה את הבקשה הזו (אם מבצע השילוב מתקשר אלינו בשם ארגון אחר).

גוף התגובה

מטען ייעודי (payload) של תגובה ל-method getOrderDetails.

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכלול נתונים במבנה הבא:

ייצוג JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
שדות
responseHeader

object (ResponseHeader)

חובה: כותרת נפוצה לכל התשובות.

result

enum (GetOrderDetailsResultCode)

חובה: התוצאה של השיחה הזו.

order

object (Order)

אופציונלי: מידע בנוגע להזמנה שבה בוצע התשלום. (מוצג אם ורק אם result הוא SUCCESS.)

RequestHeader

אובייקט כותרת שמוגדר בכל הבקשות שנשלחות לשרת.

ייצוג JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
שדות
requestId

string

חובה: המזהה הייחודי של הבקשה.

זוהי מחרוזת באורך מקסימלי של 100 תווים והיא מכילה רק את התווים "a-z", "A-Z", "0-9", ":", "-" ו-"_".

requestTimestamp

string (int64 format)

חובה: חותמת הזמן של הבקשה הזו מיוצגת כאלפיות שנייה מאז תחילת התקופה של זמן מערכת. המקבל צריך לוודא שחותמת הזמן הזו היא ± 60 שניות של 'עכשיו'. חותמת הזמן של הבקשה אינה מזהה ביחס לניסיונות החוזרים.

userLocale
(deprecated)

string

הוצא משימוש: קוד שפה בן שתיים או שלוש אותיות לפי תקן ISO 639-2 Alpha 3, ואחריו מקף וקוד מדינה לפי תקן ISO 3166-1 Alpha-2. לדוגמה: 'pt', 'pt-BR', 'fil' או 'fil-PH'. אפשר להשתמש בה כדי לכתוב את השדות userMessage בתגובה.

protocolVersion

object (Version)

חובה: הגרסה של הבקשה.

גרסה

אובייקט גרסה שהוא צורה מובנית של מבנה הגרסה הקלאסי של a.b.c. מובטחות תאימות של גרסאות ראשיות של אותו מספר. חשוב לזכור שתיקונים קלים ותיקונים קטנים עשויים להשתנות לעיתים קרובות וללא הודעה מוקדמת. מבצע השילוב חייב לתמוך בכל הבקשות לאותה גרסה ראשית.

ייצוג JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
שדות
major

integer

חובה: הגרסה הראשית. מצב זה מסומן עבור בקשות תאימות עם גרסאות שונות לא מובטח שהן יהיו תואמות.

minor

integer

חובה: הגרסה המשנית. מדובר בתיקוני באגים משמעותיים.

revision

integer

חובה: הגרסה המשנית. מדובר בתיקונים של באגים קטנים.

OrderLookupCriteria

קריטריונים לחיפוש הזמנה.

ייצוג JSON
{

  // Union field criteria can be only one of the following:
  "dcb3CorrelationId": string,
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
שדות

שדה איחוד criteria.

הערך של criteria יכול להיות רק אחת מהאפשרויות הבאות:

dcb3CorrelationId

string

חיפוש מבוסס על מזהה מתאם של חיוב ישיר על ידי Google שנוצר על ידי Google ומזהה באופן ייחודי את התשלום. הערך הזה נוצר על ידי Google ונשלח לשילוב התשלומים של החיוב על ידי ספק במהלך שיחת האימות.

arnCriteria

object (ArnCriteria)

חיפוש מבוסס על מספר אסמכתה של רוכש (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

חיפוש המבוסס על מספר האסמכתה של העסקה של Google.

ArnCriteria

קריטריונים לחיפוש תשלום על סמך מספר אסמכתה של משלם (ARN).

ייצוג JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
שדות
acquirerReferenceNumber

string

חובה: מספר האסמכתה של הלקוח (ARN) שמזהה את התשלום באופן ייחודי. חייב להכיל 23 ספרות.

authorizationCode

string

נדרש: קוד ההרשאה לעסקה.

GoogleTransactionReferenceNumberCriteria

קריטריונים לחיפוש תשלום על סמך מספר האסמכתה של העסקה שנוצרה על ידי Google.

ייצוג JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
שדות
googleTransactionReferenceNumber

string

חובה: מספר הסימוכין של העסקה שנוצר על ידי Google, שמזהה באופן ייחודי את התשלום.

authorizationCode

string

נדרש: קוד ההרשאה לעסקה.

RequestOriginator

מידע על הארגון או קבוצת המשנה הארגונית שמהם הגיעה הבקשה. כך Google יכולה לזהות בעיות או ניצול לרעה ולהטמיע אמצעי בקרה ברמת פירוט גבוהה יותר מאשר paymentIntegratorAccountId. ההשוואה הזו חשובה במיוחד כאשר המתקשר הוא ספק שירות מתווך שמקורו בבקשות מלקוחות חיצוניים.

ייצוג JSON
{
  "organizationId": string,
  "organizationDescription": string
}
שדות
organizationId

string

נדרש: מזהה של החברה, הארגון או הקבוצה הארגונית שמהם הגיעה הבקשה. חייב להיות ייחודי בpaymentIntegratorAccountId.

organizationDescription

string

חובה: שם קריא (לבני אדם) או תיאור של הארגון, וניתן להשתמש בו כדי להקל על התקשורת בין עובדי Google לבין המארגן של אותו ארגון.

ResponseHeader

אובייקט כותרת שמוגדר בכל התגובות שנשלחות מהשרת.

ייצוג JSON
{
  "responseTimestamp": string
}
שדות
responseTimestamp

string (int64 format)

חובה: חותמת הזמן של התשובה הזו מיוצגת כאלפיות שנייה מאז תחילת התקופה של זמן מערכת. המקבל צריך לוודא שחותמת הזמן הזו היא ± 60 שניות של 'עכשיו'.

GetOrderDetailsResultCode

התוצאה של הפעלת ה-method getOrderDetails.

טיפוסים בני מנייה (enums)
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN אל תגדיר את ערך ברירת המחדל הזה אף פעם!
SUCCESS ההזמנה נמצאה והוחזרה.
ORDER_CANNOT_BE_RETURNED

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

PAYMENT_TOO_OLD התשלום המבוקש נמצא, אך לא סופקו פרטי הזמנה עקב גיל התשלום.
PAYMENT_NOT_FOUND התשלום המבוקש לא נמצא.
NO_ADDITIONAL_DETAILS התשלום המבוקש נמצא, אך פרטי ההזמנה אינם זמינים.

הזמנה

מידע על ההזמנה.

ייצוג JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
שדות
timestamp

string (int64 format)

אופציונלי: חותמת הזמן של מועד ביצוע ההזמנה, מיוצגת כאלפיות שנייה מאז תחילת התקופה. האפשרות הזו לא זמינה לכל סוגי ההזמנות.

orderId

string

אופציונלי: מחרוזת המזהה את הסדר הזה באופן ייחודי. האפשרות הזו לא זמינה לכל סוגי ההזמנות.

currencyCode

string

אופציונלי: קוד מטבע בן 3 אותיות לפי תקן ISO 4217 לכל הסכומים בסדר הזה. האפשרות הזו לא זמינה לכל סוגי ההזמנות.

subTotalAmount

string (Int64Value format)

אופציונלי: הסכום הכולל של ההזמנה הזו לפני מס, מיוצג כמיקרו של המטבע שצוין ב-order.currencyCode. הערך הזה שווה ל-SUM(items.totalPrice). האפשרות הזו לא זמינה לכל סוגי ההזמנות.

totalAmount

string (Int64Value format)

אופציונלי: הסכום הכולל של ההזמנה הזו, כולל מס, מיוצג כמיקרו של המטבע שצוין ב-order.currencyCode. הערך הזה שווה ל-subTotalAmount + SUM(taxes.amount). האפשרות הזו לא זמינה לכל סוגי ההזמנות.

items[]

object (Item)

חובה: רשימת פריטים שהיו חלק מהזמנה זו.

taxes[]

object (Tax)

אופציונלי: רשימת מיסים שהיו חלק מהזמנה זו.

פריט

מידע על הפריט שבהזמנה.

ייצוג JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
שדות
description

string

אופציונלי: תיאור של הפריט שנרכש. האפשרות הזו לא זמינה לכל סוגי ההזמנות.

merchant

string

חובה: המוכר, האומן או היוצר של הפריט.

quantity

string (Int64Value format)

אופציונלי: הכמות שהוזמנה מהפריט.

השדה הזה יושמט אם לא ניתן להשתמש בכמויות של מספרים שלמים על המוצר (לדוגמה, במוצרים שמבוססים על מכסת מאמרים ללא תשלום יכולות להיות כמויות חלקיות).

totalPrice

string (Int64Value format)

אופציונלי: המחיר הכולל של הפריט, מיוצג כמיקרו של המטבע שצוין ב-order.currencyCode. אם הערך quantity מאוכלס, הערך הזה משקף את המחיר הכולל של הכמות כולה. האפשרות הזו לא זמינה לכל סוגי ההזמנות.

googleProductName

string

חובה: שם שירות המוצר של Google עבור הפריט.

מס

מידע על מס שחל על הזמנה זו.

ייצוג JSON
{
  "description": string,
  "amount": string
}
שדות
description

string

חובה: תיאור של המס.

amount

string (Int64Value format)

חובה: סכום המס, מיוצג כמיקרו של המטבע שצוין ב-order.currencyCode.