Method: getDisputeInquiryReport

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

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

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

בקשת HTTP

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

גוף הבקשה

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

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

object (RequestHeader)

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

paymentIntegratorAccountId

string

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

paymentLookupCriteria

object (PaymentLookupCriteria)

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

existingGoogleClaimId

string

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

אם הוא לא קיים, המערכת תיצור מזהה תלונה חדש. המתקשר יכול לספק googleClaimId שהוחזרה על ידי שיחה קודמת אל getDisputeInquiryReport, אם זו המשך של אותו מחלוקת מצד הלקוח.

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

אי אפשר לציין googleClaimId שלא הוחזר על ידי קריאה קודמת אל getDisputeInquiryReport. במקרה כזה, תוחזר בקשה פגומה של HTTP 400.

requestOriginator

object (RequestOriginator)

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

גוף התשובה

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

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

ייצוג JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
שדות
responseHeader

object (ResponseHeader)

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

result

enum (GetDisputeInquiryReportResultCode)

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

googleClaimId

string

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

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

report

object (PurchaseReport)

אופציונלי: פרטים שרלוונטיים לערעור על התשלום שצוין בבקשה. (הצגה רק אם הערך של result הוא הצלחה).

PaymentLookupCriteria

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

ייצוג JSON
{

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

שדה איחוד criteria.

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

arnCriteria

object (ArnCriteria)

אופציונלי: חיפוש שמבוסס על מספר הסימוכין של הצירוף (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

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

captureRequestCriteria

object (CaptureRequestCriteria)

אופציונלי: מחפשים לפי מזהה הבקשה לכידה.

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

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

CaptureRequestCriteria

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

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

string

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

RequestOriginator

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

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

string

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

organizationDescription

string

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

agentId

string

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

GetDisputeInquiryReportResultCode

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

טיפוסים בני מנייה (enum)
UNKNOWN_RESULT אל תגדירו את ערך ברירת המחדל הזה אף פעם!
SUCCESS התשלום נמצא ומועבר דוח.
PAYMENT_NOT_FOUND התשלום המבוקש לא נמצא.
PAYMENT_TOO_OLD התשלום המבוקש נמצא, אבל לא סופק דוח בגלל גיל התשלום.
ORDER_CANNOT_BE_RETURNED התשלום המבוקש שייך להזמנה קיימת, אך לא ניתן להחזיר אותו. הסיבות כוללות מקרים שבהם ההזמנה הוסרה לבקשת הבעלים שלה.
NO_ADDITIONAL_DETAILS התשלום המבוקש נמצא, אבל אין דוח זמין.

PurchaseReport

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

ייצוג JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
שדות
customerAccount

object (CustomerAccount)

חובה: מידע לגבי הלקוח והחשבון שלו.

order

object (Order)

חובה: מידע לגבי ההזמנה שבה בוצע התשלום.

payment

object (Payment)

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

CustomerAccount

מידע על החשבון של הלקוח

ייצוג JSON
{
  "customerEmail": string,
  "customerName": string
}
שדות
customerEmail

string

חובה: כתובת האימייל שמשויכת לחשבון Google של הלקוח.

customerName

string

חובה: שם הלקוח.

הזמנה

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

ייצוג JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "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). המבצע לא זמין לכל סוגי ההזמנות.

shippingAddress

object (Address)

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

items[]

object (Item)

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

taxes[]

object (Tax)

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

כתובת

מבנה שמכיל מידע על כתובת.

ייצוג JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
שדות
name

string

אופציונלי: השם המלא של הלקוח.

addressLine[]

string

אופציונלי: מכילה טקסט כתובת לא מובנה.

localityName

string

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

דוגמאות: עיר בארה"ב, קהילת IT, עיר דואר בבריטניה.

administrativeAreaName

string

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

postalCodeNumber

string

אופציונלי: למרות השם, בדרך כלל הערכים שלPostalCodeNumber מכילים אותיות וספרות. דוגמאות: '94043', 'SW1W', 'SW1W 9TQ'.

countryCode

string

אופציונלי: קוד המדינה של כתובת הלקוח, צריך להיות בפורמט ISO-3166-1 Alpha-2.

פריט

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

ייצוג 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.

תשלום

מידע על התשלום.

ייצוג JSON
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
שדות
billingAddress

object (Address)

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

amount

string (Int64Value format)

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

refunds[]

object (Refund)

חובה: רשימת החזרים כספיים שבוצעו לתשלום הזה. יכול להיות שהרשימה הזו ריקה.

שדה איחוד fopDetails.

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

cardDetails

object (PaymentCardDetails)

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

החזר כספי

מידע על החזר כספי שבוצע.

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

string (Int64Value format)

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

initiatedTimestamp

string (int64 format)

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

PaymentCardDetails

פרטי תשלום ספציפיים לאשראי כרטיסי חיוב מיידי.

ייצוג JSON
{
  "authResult": enum (AuthResult)
}
שדות
authResult

enum (AuthResult)

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

AuthResult

תוצאות של אימות תשלום.

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