Method: captureResultNotification

עליך להודיע ל-Google על התוצאה של תיעוד לאחר ביצוע קריאה ל-method capture או asynchronousCapture.

הערך captureResult הוא אידמפוטנטי עבור captureRequestId, כך שלא ניתן לשנות את הערך שלו על ידי קריאה נוספת ל-method הזה.

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

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

בקשת HTTP

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

גוף הבקשה

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

ייצוג JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
שדות
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

חובה: מזהה החשבון של הכלי לשילוב תשלומים שבו התרחשה הצילום.

captureRequestId

string

חובה: מזהה ייחודי לעסקה. זהו השדה requestId שנוצר על ידי Google במהלך השיחה capture או asynchronousCapture שאליה משויכת הבקשה הזו.

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

captureResult

object (CaptureResult)

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

paymentIntegratorTransactionId

string

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

לנוחיותכם, המזהה הזה נכלל בפרטי ההעברה

גוף התשובה

אובייקט תשובה ל-method captureResultNotification.

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

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

object (ResponseHeader)

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

result

enum (CaptureResultNotificationResultCode)

חובה: תוצאת הקריאה הזו.

CaptureResult

מידע על התוצאה הסופית של הצילום.

ייצוג JSON
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
שדות
captureResultCode

enum (CaptureResultCode)

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

rawResult

object (RawResult)

אופציונלי: תוצאה גולמית של הצילום. הנתונים משמשים לקבלת מידע על מנוע הסיכון של Google ועל ניתוח נתונים. במצבים של מיפוי קוד, הנתונים אובדים לפעמים. מבצע השילוב יכול לתת ל-Google קוד גולמי. לדוגמה, שער של כרטיס אשראי (המבצע) יכול להשתמש בשדה הזה כדי להעביר ל-Google את קוד הדחייה המדויק שהתקבל מרשת VISA. במקרה כזה, scope יהיה "Visa" והערך rawCode יהיה הערך שרשת VISA תחזיר.

הערך הזה הוא חובה אם result אינו SUCCESS.

שדה איחוד FailureDetail.

FailureDetail יכול להיות רק אחת מהאפשרויות הבאות:

transactionMaxLimit

string (Int64Value format)

אופציונלי: אם הערך של captureResultCode הוא CHARGE_EXCEEDS_TRANSACTION_LIMIT, זה הערך של העסקה המקסימלית המותרת. הנתונים האלה משמשים למסרים מובְנים שגלויים למשתמשים ולניתוח של שיעורי דחייה.

הסכום הזה הוא מיקרו של אותו currencyCode כמו הפעלת ה-method המקורית מסוג capture או asynchronousCapture.

transactionMinLimit

string (Int64Value format)

אופציונלי: אם הערך של captureResultCode הוא CHARGE_UNDER_TRANSACTION_LIMIT, זה הערך של העסקה המינימלית המותרת. הנתונים האלה משמשים למסרים מובְנים שגלויים למשתמשים ולניתוח של שיעורי דחייה.

הסכום הזה הוא מיקרו של אותו currencyCode כמו הפעלת ה-method המקורית מסוג capture או asynchronousCapture.

currentBalance

string (Int64Value format)

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

הערך הזה חייב להיות באותו מטבע כמו currencyCode בבקשה.

CaptureResultCode

קודי התוצאות של צילום.

טיפוסים בני מנייה (enum)
UNKNOWN_RESULT אל תגדירו את ערך ברירת המחדל הזה אף פעם!
SUCCESS הצילום בוצע בהצלחה.
CHARGE_UNDER_TRANSACTION_LIMIT סכום החילוץ המבוקש לא עומד בסכום המינימלי לעסקה של מבצע השילוב. אם משתמשים בקוד הזה, צריך לאכלס את השדה transactionMinLimit בסכום העסקה המינימלי לצורכי העברת הודעות למשתמשים.
CHARGE_EXCEEDS_TRANSACTION_LIMIT סכום הלכידה המבוקש חורג מהמגבלה המקסימלית של מבצע השילוב לכל עסקה. אם משתמשים בקוד הזה, צריך לאכלס את השדה transactionMaxLimit עם מגבלת העסקאות למטרות העברת הודעות למשתמשים.
CHARGE_EXCEEDS_DAILY_LIMIT אי אפשר לבצע כרגע רכישות בחשבון של המשתמש כי הוא חרג מהמגבלה היומית.
CHARGE_EXCEEDS_MONTHLY_LIMIT אי אפשר לבצע כרגע רכישות בחשבון של המשתמש כי הוא חרג מהמגבלה החודשית.
INSUFFICIENT_FUNDS אין מספיק כסף בחשבון הזה כדי להבטיח את ההקלטה הזו.
SUSPECTED_FRAUD למבצע השילוב יש סיבה לחשוד שהעסקה הזו היא בתרמית.
ACCOUNT_CLOSED חשבון המשתמש שהיה שמור אצל מבצע השילוב נסגר. הערך המוחזר הזה יגרום לסגירת אמצעי התשלום של המשתמש ב-Google. המשתמש ייאלץ להוסיף אמצעי תשלום חדש.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER חשבון המשתמש אצל מבצע השילוב נסגר, חשד להשתלטות על חשבון. הערך המוחזר הזה יגרום לסגירת אמצעי התשלום של המשתמש ב-Google. המשתמש ייאלץ להוסיף אמצעי תשלום חדש.
ACCOUNT_CLOSED_FRAUD חשבון המשתמש, שהיה שמור אצל מבצע השילוב, נסגר עקב הונאה. הערך המוחזר הזה יגרום לסגירת אמצעי התשלום של המשתמש ב-Google. המשתמש ייאלץ להוסיף אמצעי תשלום חדש.
ACCOUNT_ON_HOLD החשבון של המשתמש נמצא בהשהיה.
OTP_NOT_MATCHED הסיסמה החד-פעמית (OTP) לא תואמת למה שנשלח על ידי מבצע השילוב.
OTP_ALREADY_USED כבר נעשה שימוש ב-OTP.
CAPTURE_REQUEST_EXPIRED למבצע השילוב נדרש זמן רב מדי כדי להעביר את כספי המשתמש. Google תתייחס לדחייה הזו כמצב סופי, כך שהמטמיע צריך לוודא שכספי המשתמש לא יתועדו במועד מאוחר יותר, או שהמשתמש יקבל החזר כספי באופן אוטומטי אם הלכידה הצליחה.
INVALID_PIN המשתמש סיפק קוד אימות לא חוקי.
OS_LOCK_FAILED תהליך התשלום הזה מחייב אימות של נעילת מערכת ההפעלה והמשתמש לא הצליח לבטל את נעילת המכשיר.
PIN_ENTRY_ATTEMPTS_EXHAUSTED תהליך התשלום הזה מחייב הזנת קוד אימות של המשתמש. המשתמש לא הצליח להזין את קוד האימות מספיק פעמים, כך שלא נגמרו הניסיונות החוזרים.
USER_EXITED_PAYMENT_FLOW המשתמש ביטל את כל ניסיון התשלום (בנעילת מערכת ההפעלה או במסך הזנת קוד האימות).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED אי אפשר להשתמש כרגע בחשבון של המשתמש לביצוע רכישות כי הוא חרג מהמגבלה החודשית של ניסיונות עסקה.
DECLINED_BY_ISSUER

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

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

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

RawResult

אובייקט גולמי של תוצאה.

ייצוג JSON
{
  "scope": string,
  "rawCode": string
}
שדות
scope

string

אופציונלי: ההיקף של קוד ה-RAW יכול להיות ריק.

rawCode

string

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

CaptureResultNotificationResultCode

קודי התוצאות של השיטה captureResultNotification.

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