Method: getDisputeInquiryReport

Nhận báo cáo cung cấp thông tin để hỗ trợ việc trao đổi với bộ phận hỗ trợ khách hàng với người dùng về tranh chấp tiềm ẩn về khoản thanh toán.

Nếu điểm cuối gặp lỗi trong khi xử lý yêu cầu, thì phản hồi từ điểm cuối này sẽ thuộc loại ErrorResponse.

Các phản hồi cho truy vấn này có thể trống nếu phương thức này không trả về HTTP 200. Nội dung phản hồi bị trống trong các tình huống mà ErrorResponse có nội dung mô tả rõ ràng có thể được sử dụng để giúp kẻ tấn công hiểu giá trị nhận dạng tài khoản của nhà tích hợp thanh toán của các nhà tích hợp khác. Trong các trường hợp này, khi khoá ký không khớp, không tìm thấy giá trị nhận dạng nhà tích hợp thanh toán hoặc khoá mã hoá, phương thức này sẽ trả về HTTP 404 không có mã. Nếu có thể xác minh chữ ký yêu cầu, thông tin bổ sung về lỗi sẽ được trả về nội dung phản hồi.

Một yêu cầu mẫu có dạng như sau:


{
  "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"
  }
}

Một phản hồi mẫu sẽ có dạng như sau:


{
  "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"
      }
    }
  }
}

Yêu cầu HTTP

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

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu với cấu trúc như sau:

Biểu diễn dưới dạng JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Các trường
requestHeader

object (RequestHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các yêu cầu.

paymentIntegratorAccountId

string

BẮT BUỘC: Mã định danh tài khoản của nhà tích hợp thanh toán xác định người gọi và các ràng buộc hợp đồng có liên quan cho tương tác này.

paymentLookupCriteria

object (PaymentLookupCriteria)

BẮT BUỘC: Các tiêu chí cho biết khoản thanh toán sẽ được tra cứu cho yêu cầu này.

existingGoogleClaimId

string

TÙY CHỌN: Chuỗi do Google tạo sẽ được lệnh gọi trước đó trả về getDisputeInquiryReport xác định duy nhất xác nhận quyền sở hữu tranh chấp của khách hàng này.

Nếu không có ID này, hệ thống sẽ tạo một mã xác nhận quyền sở hữu mới. Phương thức gọi có thể cung cấp googleClaimId đã được một lệnh gọi trước đó trả về cho getDisputeInquiryReport nếu đây là lệnh tiếp tục của tranh chấp tương tự.

ID xác nhận quyền sở hữu được tạo ở đây hoặc được tạo sẽ được trả về trong trường googleClaimId của phản hồi.

Việc cung cấp googleClaimId không được lệnh gọi trước đó trả về getDisputeInquiryReport không hợp lệ. Nếu điều này xảy ra, yêu cầu HTTP 400 không hợp lệ sẽ được trả về.

requestOriginator

object (RequestOriginator)

BẮT BUỘC: Thông tin về tổ chức hoặc nhóm phụ của tổ chức đã đưa ra yêu cầu này.

Nội dung phản hồi

Trọng tải phản hồi cho phương thức getDisputeInquiryReport.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Các trường
responseHeader

object (ResponseHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các phản hồi.

result

enum (GetDisputeInquiryReportResultCode)

BẮT BUỘC: Kết quả của cuộc gọi này.

googleClaimId

string

KHÔNG BẮT BUỘC: Một chuỗi do Google tạo để xác định duy nhất tranh chấp của khách hàng này. (Chỉ trình bày khi và chỉ khi result thành công.)

Nếu existingGoogleClaimId được điền vào yêu cầu, thì đây sẽ là giá trị giống nhau. Nếu không, đây sẽ là một giá trị mới được tạo. Giá trị này có thể được cung cấp trong các yêu cầu getDisputeInquiryReport trong tương lai nếu chúng cùng một khách hàng tranh chấp.

report

object (PurchaseReport)

KHÔNG BẮT BUỘC: Các chi tiết liên quan đến tranh chấp thanh toán được xác định trong yêu cầu. (Chỉ trình bày khi và chỉ khi result thành công.)

Tiêu chí tra cứu thanh toán

Vùng chứa các tiêu chí có thể tra cứu duy nhất một khoản thanh toán. Phải điền một trường (và chỉ một) trường thành viên.

Biểu diễn dưới dạng 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.
}
Các trường

Trường nhóm criteria.

criteria chỉ có thể là một trong những loại sau đây:

arnCriteria

object (ArnCriteria)

KHÔNG BẮT BUỘC: Tra cứu dựa trên Số tham chiếu của đơn vị thu nạp (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

KHÔNG BẮT BUỘC: Tra cứu dựa trên Số tham chiếu giao dịch của Google.

captureRequestCriteria

object (CaptureRequestCriteria)

KHÔNG BẮT BUỘC: Tra cứu dựa trên mã yêu cầu chụp.

Tiêu chí Arn

Tiêu chí tra cứu thanh toán dựa trên Số tham chiếu của người mua (ARN).

Biểu diễn dưới dạng JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Các trường
acquirerReferenceNumber

string

BẮT BUỘC: Số tham chiếu của người chuyển đổi (ARN) xác định duy nhất khoản thanh toán. Phải dài 23 chữ số.

authorizationCode

string

BẮT BUỘC: Mã ủy quyền cho giao dịch.

Giá trị tham chiếu GoogleTransactionReference

Tiêu chí tra cứu thanh toán dựa trên Số tham chiếu giao dịch do Google tạo.

Biểu diễn dưới dạng JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Các trường
googleTransactionReferenceNumber

string

BẮT BUỘC: Số tham chiếu giao dịch do Google tạo để xác định duy nhất khoản thanh toán.

authorizationCode

string

BẮT BUỘC: Mã ủy quyền cho giao dịch.

CaptureRequestCRITERIA

Tiêu chí tra cứu thanh toán dựa trên yêu cầu giữ lại ban đầu.

Biểu diễn dưới dạng JSON
{
  "captureRequestId": string
}
Các trường
captureRequestId

string

BẮT BUỘC: Giá trị nhận dạng duy nhất của giao dịch này. Đây là requestId do Google tạo trong cuộc gọi capture đang được tra cứu.

Trình tạo yêu cầu

Thông tin về tổ chức hoặc nhóm phụ của tổ chức và (không bắt buộc) nhân viên, nguồn gốc của yêu cầu này. Điều này cho phép Google xác định các vấn đề hoặc hành vi sử dụng sai mục đích và triển khai các chế độ kiểm soát ở mức độ chi tiết hơn so với paymentIntegratorAccountId. Điều này đặc biệt có giá trị khi người gọi là nhà cung cấp dịch vụ trung gian lấy nguồn yêu cầu từ nhiều khách hàng bên ngoài.

Biểu diễn dưới dạng JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Các trường
organizationId

string

BẮT BUỘC: Giá trị nhận dạng của công ty, tổ chức hoặc nhóm tổ chức nơi yêu cầu này bắt nguồn. Phải là duy nhất trong paymentIntegratorAccountId này.

organizationDescription

string

BẮT BUỘC: Tên hoặc mô tả dễ đọc của tổ chức có thể được sử dụng để dễ dàng giao tiếp giữa các nhân viên của Google và nhà tích hợp về tổ chức đó.

agentId

string

KHÔNG BẮT BUỘC: Giá trị nhận dạng duy nhất cho nhân viên hỗ trợ cụ thể (nhân viên) của tổ chức do organizationId xác định mà yêu cầu bắt nguồn từ đó. Phải là duy nhất trong organizationId này.

Nhận mã kết quả tranh chấp

Kết quả của lệnh gọi phương thức getDisputeInquiryReport.

Enum
UNKNOWN_RESULT Không bao giờ đặt giá trị mặc định này!
SUCCESS Đã tìm thấy khoản thanh toán và chúng tôi đã cung cấp báo cáo.
PAYMENT_NOT_FOUND Không tìm thấy thanh toán đã yêu cầu.
PAYMENT_TOO_OLD Đã tìm thấy thanh toán được yêu cầu, nhưng báo cáo không được cung cấp do tuổi thanh toán.
ORDER_CANNOT_BE_RETURNED Thanh toán được yêu cầu thuộc về đơn hàng đã tồn tại nhưng không thể trả lại được. Lý do bao gồm các trường hợp đơn đặt hàng bị xóa theo yêu cầu của chủ sở hữu.
NO_ADDITIONAL_DETAILS Khoản thanh toán được yêu cầu đã được tìm thấy, nhưng không có báo cáo.

Báo cáo mua hàng

Báo cáo có các chi tiết liên quan đến giao dịch mua liên quan đến khoản thanh toán được yêu cầu.

Biểu diễn dưới dạng JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Các trường
customerAccount

object (CustomerAccount)

BẮT BUỘC: Thông tin về khách hàng và tài khoản của họ.

order

object (Order)

BẮT BUỘC: Thông tin về thứ tự thanh toán.

payment

object (Payment)

KHÔNG BẮT BUỘC: Thông tin về khoản thanh toán. Lưu ý: Có thể có nhiều thanh toán trên một đơn đặt hàng, nhưng điều này sẽ chỉ chứa thông tin về thanh toán đã được xác định trong yêu cầu ban đầu. Không có sẵn cho tất cả các loại đơn đặt hàng.

Tài Khoản Khách Hàng

Thông tin về tài khoản của khách hàng

Biểu diễn dưới dạng JSON
{
  "customerEmail": string,
  "customerName": string
}
Các trường
customerEmail

string

BẮT BUỘC: Địa chỉ email liên kết với tài khoản Google của khách hàng.

customerName

string

BẮT BUỘC: Tên của khách hàng.

Gọi món

Thông tin về đơn đặt hàng.

Biểu diễn dưới dạng JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Các trường
timestamp

string (int64 format)

TÙY CHỌN: Dấu thời gian cho biết thời điểm thực hiện đơn đặt hàng, được biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống. Không có sẵn cho tất cả các loại đơn đặt hàng.

orderId

string

TÙY CHỌN: Chuỗi xác định duy nhất đơn đặt hàng này. Không có sẵn cho tất cả các loại đơn đặt hàng.

currencyCode

string

KHÔNG BẮT BUỘC: Mã đơn vị tiền tệ gồm 3 chữ cái theo ISO 4217 cho tất cả các số tiền trong đơn đặt hàng này. Không có sẵn cho tất cả các loại đơn đặt hàng.

subTotalAmount

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng số tiền của đơn đặt hàng này trước thuế, được thể hiện bằng micros của đơn vị tiền tệ được chỉ định trong order.currencyCode. Giá trị này bằng SUM(items.totalPrice). Không có sẵn cho tất cả các loại đơn đặt hàng.

totalAmount

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng số tiền của đơn đặt hàng này bao gồm thuế, được biểu thị dưới dạng micros của đơn vị tiền tệ được chỉ định trong order.currencyCode. Giá trị này bằng subTotalAmount + SUM(taxes.amount). Không có sẵn cho tất cả các loại đơn đặt hàng.

shippingAddress

object (Address)

KHÔNG BẮT BUỘC: Địa chỉ giao hàng cho các mặt hàng thực trong đơn đặt hàng này.

items[]

object (Item)

BẮT BUỘC: Danh sách các mặt hàng trong đơn đặt hàng này.

taxes[]

object (Tax)

BẮT BUỘC: Danh sách các mặt hàng trong đơn đặt hàng này. Danh sách này có thể trống.

Address (Địa chỉ)

Cấu trúc chứa thông tin về một địa chỉ.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Các trường
name

string

KHÔNG BẮT BUỘC: Tên đầy đủ của khách hàng.

addressLine[]

string

TÙY CHỌN: Loại này chứa văn bản Địa chỉ không có cấu trúc.

localityName

string

TÙY CHỌN: Đây là một thuật ngữ mờ, nhưng nó thường đề cập đến phần thành phố/thị trấn của địa chỉ. Ở những khu vực trên thế giới mà các địa phương được định nghĩa không đúng hoặc không phù hợp với cấu trúc này (ví dụ: Nhật Bản và Trung Quốc), hãy để trống CitizenName và sử dụng addressLine.

Ví dụ: Thành phố ở Hoa Kỳ, Cộng đồng CNTT, thị trấn có bưu điện Vương quốc Anh.

administrativeAreaName

string

TÙY CHỌN: Phân khu hành chính cấp cao nhất của quốc gia này" Ví dụ: Tiểu bang Hoa Kỳ, khu vực CNTT, tỉnh CN, tỉnh JP."

postalCodeNumber

string

TÙY CHỌN: Mặc dù có tên, nhưng các giá trị bưu chính của CodeCode thường là chữ và số. Ví dụ: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

TÙY CHỌN: Mã quốc gia trong địa chỉ khách hàng, dự kiến là ISO-3166-1 Alpha-2.

Mục

Thông tin về một mặt hàng trong đơn đặt hàng.

Biểu diễn dưới dạng JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Các trường
description

string

KHÔNG BẮT BUỘC: Mô tả mặt hàng đã được mua. Không có sẵn cho tất cả các loại đơn đặt hàng.

merchant

string

BẮT BUỘC: Người bán, nghệ sĩ hoặc nhà sản xuất mặt hàng.

quantity

string (Int64Value format)

KHÔNG BẮT BUỘC: Số lượng đặt hàng của mặt hàng này.

Trường này sẽ bị bỏ qua nếu số lượng dạng số nguyên không áp dụng được cho sản phẩm (ví dụ: các sản phẩm được đo lường có thể có số lượng nhỏ).

totalPrice

string (Int64Value format)

KHÔNG BẮT BUỘC: Tổng giá của mặt hàng này, được thể hiện dưới dạng micros của đơn vị tiền tệ được chỉ định trong order.currencyCode. Nếu bạn điền quantity, giá trị này sẽ phản ánh tổng giá của toàn bộ số lượng. Không có sẵn cho tất cả các loại đơn đặt hàng.

googleProductName

string

BẮT BUỘC: Tên dịch vụ sản phẩm của Google cho mặt hàng.

Thuế

Thông tin về thuế áp dụng cho đơn đặt hàng này.

Biểu diễn dưới dạng JSON
{
  "description": string,
  "amount": string
}
Các trường
description

string

BẮT BUỘC: Mô tả về thuế.

amount

string (Int64Value format)

BẮT BUỘC: Số tiền thuế, được thể hiện bằng micros của đơn vị tiền tệ được quy định trong order.currencyCode.

Kiếm doanh thu

Thông tin về khoản thanh toán.

Biểu diễn dưới dạng 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.
}
Các trường
billingAddress

object (Address)

BẮT BUỘC: Địa chỉ thanh toán cho khoản thanh toán này.

amount

string (Int64Value format)

BẮT BUỘC: Số tiền của khoản thanh toán này, được thể hiện bằng một phần triệu của đơn vị tiền tệ được chỉ định trong order.currencyCode. Lưu ý: Số này có thể không khớp với order.totalAmount nếu đơn đặt hàng này được thanh toán bằng nhiều khoản thanh toán.

refunds[]

object (Refund)

BẮT BUỘC: Danh sách các khoản tiền hoàn lại cho khoản thanh toán này. Danh sách này có thể trống.

Trường nhóm fopDetails.

fopDetails chỉ có thể là một trong những loại sau đây:

cardDetails

object (PaymentCardDetails)

KHÔNG BẮT BUỘC: Chi tiết thanh toán dành riêng cho Fops thẻ tín dụng và thẻ ghi nợ.

Hoàn tiền

Thông tin về việc hoàn tiền cho một khoản thanh toán.

Biểu diễn dưới dạng JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Các trường
amount

string (Int64Value format)

BẮT BUỘC: Số tiền được hoàn lại, số dương micros của đơn vị tiền tệ được chỉ định trong order.currencyCode.

initiatedTimestamp

string (int64 format)

BẮT BUỘC: Dấu thời gian cho biết thời điểm bắt đầu quá trình hoàn tiền, được biểu thị dưới dạng mili giây kể từ thời gian bắt đầu của hệ thống.

Thông tin chi tiết về thẻ thanh toán

Chi tiết thanh toán cụ thể cho thẻ tín dụng và thẻ ghi nợ.

Biểu diễn dưới dạng JSON
{
  "authResult": enum (AuthResult)
}
Các trường
authResult

enum (AuthResult)

BẮT BUỘC: Kết quả của xác thực thanh toán.

Kết quả xác thực

Kết quả xác thực thanh toán.

Enum
UNKNOWN_RESULT Không bao giờ đặt giá trị mặc định này!
APPROVED Ủy quyền được chấp thuận.
DENIED Xác thực bị từ chối.
NOT_ATTEMPTED Chưa xác thực.