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 ครั้งก่อน ซึ่งระบุการอ้างสิทธิ์การโต้แย้งของลูกค้านี้โดยไม่ซ้ํากัน

หากไม่มี ID ดังกล่าว ระบบจะสร้างรหัสการอ้างสิทธิ์ใหม่ ผู้โทรอาจให้ googleClaimId ที่เป็นการติดต่อกลับก่อนหน้านี้ไปยัง getDisputeInquiryReport หากการดําเนินการดังกล่าวเกิดจากการโต้แย้งของลูกค้ารายเดียวกัน

รหัสการอ้างสิทธิ์ที่สร้างขึ้นที่นี่หรือสร้างขึ้นจะแสดงในช่อง googleClaimId ของการตอบกลับ

การระบุ googleClaimId ที่ไม่ได้ส่งคืนโดยการโทรไปยัง getDisputeInquiryReport ครั้งก่อนไม่ถูกต้อง หากเหตุการณ์นี้เกิดขึ้น ระบบจะแสดงคําขอ HTTP 400 ที่ไม่ดี

requestOriginator

object (RequestOriginator)

ต้องระบุ: ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กรที่สร้างคําขอนี้

เนื้อหาการตอบกลับ

เปย์โหลดการตอบกลับสําหรับเมธอด 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 สําเร็จเท่านั้น)

เกณฑ์การชําระเงิน

คอนเทนเนอร์สําหรับเกณฑ์ที่ค้นหาการชําระเงินได้แบบไม่ซ้ํากัน ต้องระบุข้อมูลในช่องสมาชิก (ช่องเดียวเท่านั้น)

การแสดง 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.
}
ช่อง

ช่อง Union criteria

criteria ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

arnCriteria

object (ArnCriteria)

ไม่บังคับ: ค้นหาตามหมายเลขอ้างอิง Acquirer (ARN)

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

ไม่บังคับ: ค้นหาตามหมายเลขอ้างอิงธุรกรรมของ Google

captureRequestCriteria

object (CaptureRequestCriteria)

ไม่บังคับ: ค้นหาตามรหัสคําขอการจับภาพ

เกณฑ์ของ Arn

เกณฑ์การค้นหาการชําระเงินตาม Acquirer Reference Number (ARN)

การแสดง JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
ช่อง
acquirerReferenceNumber

string

ต้องระบุ: หมายเลขอ้างอิงผู้รับบริการ (ARN) ที่ระบุการชําระเงินโดยไม่ซ้ํากัน ต้องมีความยาว 23 หลัก

authorizationCode

string

ต้องระบุ: รหัสการให้สิทธิ์สําหรับธุรกรรม

GoogleTransactionReferenceNumberCriterion

เกณฑ์การค้นหาการชําระเงินตามหมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้น

การแสดง JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
ช่อง
googleTransactionReferenceNumber

string

ต้องระบุ: หมายเลขอ้างอิงธุรกรรมที่ Google สร้างขึ้นซึ่งระบุการชําระเงินที่ไม่ซ้ํากัน

authorizationCode

string

ต้องระบุ: รหัสการให้สิทธิ์สําหรับธุรกรรม

เกณฑ์การจับภาพ

เกณฑ์การค้นหาการชําระเงินโดยอิงตามคําขอจับภาพครั้งแรก

การแสดง JSON
{
  "captureRequestId": string
}
ช่อง
captureRequestId

string

ต้องระบุ: ตัวระบุที่ไม่ซ้ําสําหรับธุรกรรมนี้ นี่คือ requestId ที่ Google สร้างขึ้นระหว่างการโทร capture ซึ่งกําลังค้นหาอยู่

ผู้สร้างคําขอ

ข้อมูลเกี่ยวกับองค์กรหรือกลุ่มย่อยขององค์กร (ไม่บังคับให้พนักงาน) เป็นผู้ส่งคําขอนี้ ซึ่งช่วยให้ Google ระบุปัญหาหรือการละเมิดได้ รวมถึงใช้การควบคุมในระดับที่ละเอียดกว่า paymentIntegratorAccountId ซึ่งจะมีประโยชน์เป็นพิเศษเมื่อผู้เรียกใช้เป็นผู้ให้บริการตัวกลางที่รับคําขอจากลูกค้าภายนอกหลายราย

การแสดง JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
ช่อง
organizationId

string

ต้องระบุ: ตัวระบุบริษัท องค์กร หรือกลุ่มองค์กรที่สร้างคําขอนี้ ต้องไม่ซ้ํากันภายใน paymentIntegratorAccountId นี้

organizationDescription

string

ต้องระบุ: ชื่อหรือคําอธิบายองค์กรที่อ่านได้ของมนุษย์ ซึ่งใช้เพื่อลดความซับซ้อนในการสื่อสารระหว่างพนักงานของ Google และผู้รวมข้อมูลเกี่ยวกับองค์กรนั้น

agentId

string

ไม่บังคับ: ตัวระบุที่ไม่ซ้ําสําหรับตัวแทนเฉพาะ (พนักงาน) ขององค์กรที่ระบุโดย organizationId ซึ่งเป็นต้นทางของคําขอนี้ ต้องไม่ซ้ํากันภายใน organizationId นี้

รับรหัสโต้แย้งรายงานผลลัพธ์

ผลจากการเรียกใช้เมธอด getDisputeInquiryReport

Enum
UNKNOWN_RESULT อย่าตั้งค่าเริ่มต้นนี้!
SUCCESS พบการชําระเงินและมีรายงานให้
PAYMENT_NOT_FOUND ไม่พบการชําระเงินที่ร้องขอ
PAYMENT_TOO_OLD พบการชําระเงินที่ร้องขอแต่ไม่ได้จัดทํารายงานเนื่องจากอายุของการชําระเงิน
ORDER_CANNOT_BE_RETURNED การชําระเงินที่ร้องขอเป็นของการสั่งซื้อที่มีอยู่ แต่ไม่สามารถส่งคืนได้ สาเหตุรวมถึงกรณีที่คําสั่งซื้อถูกนําออกตามคําขอของเจ้าของ
NO_ADDITIONAL_DETAILS พบการชําระเงินที่ร้องขอแล้วแต่ไม่พบรายงาน

รายงานการซื้อ

รายงานที่มีรายละเอียดการซื้อที่เกี่ยวข้องซึ่งเกี่ยวข้องกับการชําระเงินที่ร้องขอ

การแสดง JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
ช่อง
customerAccount

object (CustomerAccount)

ต้องระบุ: ข้อมูลเกี่ยวกับลูกค้าและบัญชีของลูกค้า

order

object (Order)

ต้องระบุ: ข้อมูลเกี่ยวกับคําสั่งซื้อที่ชําระเงิน

payment

object (Payment)

ไม่บังคับ: ข้อมูลเกี่ยวกับการชําระเงิน หมายเหตุ: สามารถใช้การชําระเงินหลายรายการได้ในคําสั่งซื้อเดียว แต่จะมีเฉพาะข้อมูลสําหรับการชําระเงินที่ระบุไว้ในคําขอต้นฉบับเท่านั้น คําสั่งซื้อบางประเภทใช้งานไม่ได้

บัญชีของลูกค้า

ข้อมูลเกี่ยวกับบัญชีของลูกค้า

การแสดง 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)

ไม่บังคับ: การประทับเวลาของคําสั่งซื้อ ซึ่งแสดงเป็นมิลลิวินาทีตั้งแต่ Epoch คําสั่งซื้อบางประเภทใช้งานไม่ได้

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 และใช้ addressLine

ตัวอย่าง: เมืองในสหรัฐอเมริกา, เมืองไอที, เมืองตามเขตไปรษณีย์

administrativeAreaName

string

ไม่บังคับ: ส่วนย่อยของการดูแลระบบระดับบนสุดของประเทศนี้" เช่น รัฐในสหรัฐอเมริกา ภูมิภาคไอที จังหวัด CN จังหวัดญี่ปุ่น"

postalCodeNumber

string

ไม่บังคับ: แม้ว่าจะมีชื่อ แต่รหัสไปรษณีย์จะใช้ตัวเลขและตัวอักษรผสมกัน เช่น "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)

ไม่บังคับ: ราคารวมของรายการนี้ แสดงเป็น micro ของสกุลเงินที่ระบุใน 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)

ต้องระบุ: รายการคืนเงินสําหรับการชําระเงินนี้ รายการนี้อาจว่างเปล่า

ช่อง Union fopDetails

fopDetails ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

cardDetails

object (PaymentCardDetails)

ไม่บังคับ: รายละเอียดการชําระเงินสําหรับ FoP ของบัตรเครดิตและบัตรเดบิต

การคืนเงิน

ข้อมูลเกี่ยวกับการคืนเงินที่ชําระแล้ว

การแสดง JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
ช่อง
amount

string (Int64Value format)

ต้องระบุ: จํานวนเงินที่คืนเป็นจํานวนไมโครบวกของสกุลเงินที่ระบุใน order.currencyCode

initiatedTimestamp

string (int64 format)

ต้องระบุ: การประทับเวลาที่เริ่มการคืนเงิน ซึ่งแสดงเป็นมิลลิวินาทีตั้งแต่ Epoch

รายละเอียดบัตรสําหรับชําระเงิน

รายละเอียดการชําระเงินสําหรับบัตรเครดิตและบัตรเดบิตโดยเฉพาะ

การแสดง JSON
{
  "authResult": enum (AuthResult)
}
ช่อง
authResult

enum (AuthResult)

ต้องระบุ: ผลการตรวจสอบสิทธิ์การชําระเงิน

ผลการตรวจสอบสิทธิ์

ผลการตรวจสอบสิทธิ์การชําระเงิน

Enum
UNKNOWN_RESULT อย่าตั้งค่าเริ่มต้นนี้!
APPROVED อนุมัติการตรวจสอบสิทธิ์แล้ว
DENIED การตรวจสอบสิทธิ์ถูกปฏิเสธ
NOT_ATTEMPTED ไม่ได้ใช้การตรวจสอบสิทธิ์