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 הוא הצלחה).

RequestHeader

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

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

string

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

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

requestTimestamp

string (int64 format)

REQUIRED: חותמת הזמן של הבקשה הזו, מיוצגת באלפיות השנייה מאז epoch. על המקבל לאמת שחותמת הזמן הזו היא בטווח של ± 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 ונשלח לכלי לשילוב התשלומים לחיוב על ידי ספק במהלך שיחת האימות.

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.

טיפוסים בני מנייה (enum)
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.