Method: getDisputeInquiryReport

取得相關資訊,協助他們與客戶針對付款問題提出爭議。

如果端點在處理要求時發生錯誤,此端點的回應就會是 ErrorResponse 類型。

如果這個方法未傳回 HTTP 200,則這個查詢的回應可能為空白。如果可以使用 ErrorResponse 的詳細說明,則可讓攻擊者瞭解其他整合商的付款整合商帳戶 ID。在這些情況下,如果簽署金鑰不相符、找不到付款整合商 ID 或加密金鑰不明,這個方法就會傳回空的 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

必要條件:付款整合商的帳戶 ID,用於識別這次互動的來電者和相關的合約限制。

paymentLookupCriteria

object (PaymentLookupCriteria)

REQUIRED:指定查詢這項查詢條件的條件。

existingGoogleClaimId

string

OPTIONAL:先前呼叫 getDisputeInquiryReport 而由 Google 產生的字串,用來識別這個客戶爭議聲明。

如果沒有這個 ID,系統會產生新的版權聲明 ID。如果呼叫端是針對其他客戶爭議進行後續的呼叫,系統會傳回 getDisputeInquiryReport 先前傳回的 googleClaimId

填入回應或產生的版權聲明 ID 會在回應的 googleClaimId 欄位中傳回。

即使提供的 googleClaimId 並未在先前呼叫 getDisputeInquiryReport 時傳回,則無效。在這種情況下,系統會傳回 HTTP 400 Bad Request。

requestOriginator

object (RequestOriginator)

必要:提出這項要求的機構或機構子群組相關資訊。

回應主體

getDisputeInquiryReport 方法的回應酬載。

如果成功,回應主體即會包含具有以下結構的資料:

JSON 表示法
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
欄位
responseHeader

object (ResponseHeader)

必要:所有回應的通用標頭。

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED:呼叫的結果。

googleClaimId

string

OPTIONAL:Google 產生的不重複字串,用來識別這個客戶爭議。(只有在 result 為 SUCCESS 時,才會顯示)。

如果要求中已填入 existingGoogleClaimId,這個值將維持不變。如未設定,則為新值。如果日後 getDisputeInquiryReport 要求屬於同一客戶爭議,則可在這個值中提供。

report

object (PurchaseReport)

選填:與要求中指明付款相關的詳細資料。(只有在 result 為 SUCCESS 時,才會顯示)。

付款查詢條件

用於查詢付款專用條件的容器。必須填寫一個 (且只有一個) 成員欄位。

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)

OPTIONAL:根據 Arquirer Reference Number (ARN) 查詢。

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPTIONAL:根據 Google 交易參考編號進行查詢。

captureRequestCriteria

object (CaptureRequestCriteria)

OPTIONAL:根據擷取要求 ID 進行查詢。

獲條件條件

根據 Acquirer Reference Number (ARN) 計算付款查詢條件。

JSON 表示法
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
欄位
acquirerReferenceNumber

string

REQUIRED:付款程序的 Acrerer 參考編號 (ARN)。必須是 23 碼的數字。

authorizationCode

string

REQUIRED:交易的授權碼。

GoogleTransactionReferenceNumberCriteria

付款查詢條件 (以 Google 產生的交易參考編號為準)。

JSON 表示法
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
欄位
googleTransactionReferenceNumber

string

REQUIRED:Google 產生的交易參考編號,可用於識別付款。

authorizationCode

string

REQUIRED:交易的授權碼。

CaptureRequest 條件

以原始擷取要求為依據的付款查詢條件。

JSON 表示法
{
  "captureRequestId": string
}
欄位
captureRequestId

string

REQUIRED:這筆交易的專屬 ID。這是 Google 在 capture 呼叫期間產生的 requestId

RequestOriginator

機構或機構子群組相關資訊,並可選擇此要求的來源員工。這麼一來,Google 就能找出問題或濫用行為,並實施比 paymentIntegratorAccountId 更精細的控管機制。當呼叫者是中介服務供應商,且來自多個外部用戶端的要求時,這一點尤其重要。

JSON 表示法
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
欄位
organizationId

string

REQUIRED:提出要求的來源公司、機構或機構群組的 ID。這個 paymentIntegratorAccountId 不得重複。

organizationDescription

string

必要:機構可辨識的名稱或說明,方便使用者在 Google 員工與整合機構之間溝通交流。

agentId

string

選用:由這個要求來源 organizationId 識別機構的特定服務專員 (員工) 專屬 ID。這個 organizationId 不得重複。

GetDisputeInquiryReportResultCode

getDisputeInquiryReport 方法呼叫的結果。

列舉
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)

OPTIONAL:付款相關資訊。注意:單筆訂單可能有多種付款,但只包含原始要求中指明的款項相關資訊。不適用於所有訂單類型。

客戶帳戶

客戶帳戶相關資訊

JSON 表示法
{
  "customerEmail": string,
  "customerName": string
}
欄位
customerEmail

string

REQUIRED:與客戶 Google 帳戶相關聯的電子郵件地址。

customerName

string

REQUIRED:客戶的名稱。

訂購

訂單相關資訊。

JSON 表示法
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
欄位
timestamp

string (int64 format)

OPTIONAL:訂單成立時的時間戳記,以自 Epoch 紀元時間起算的毫秒數表示。不適用於所有訂單類型。

orderId

string

OPTIONAL:專門用來識別此訂單的字串。不適用於所有訂單類型。

currencyCode

string

OPTIONAL:這筆訂單中所有金額的 ISO 4217 貨幣代碼 (共 3 個字母)。不適用於所有訂單類型。

subTotalAmount

string (Int64Value format)

OPTIONAL:訂單總額 (不含稅金),以 order.currencyCode 中指定的貨幣 (以「微量」為單位)。等於 SUM(items.totalPrice)。不適用於所有訂單類型。

totalAmount

string (Int64Value format)

OPTIONAL:這筆訂單的總金額,含稅,以 order.currencyCode 中指定的貨幣微量表示。等於 subTotalAmount + SUM(taxes.amount)。不適用於所有訂單類型。

shippingAddress

object (Address)

OPTIONAL:這張訂單中實體商品的運送地址。

items[]

object (Item)

REQUIRED:這份訂單中的商品清單。

taxes[]

object (Tax)

REQUIRED:這份訂單中的商品清單。這份清單可能沒有任何內容。

地址

包含地址相關資訊的結構。

JSON 表示法
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
欄位
name

string

OPTIONAL:客戶的全名。

addressLine[]

string

OPTIONAL:保存非結構化地址的文字。

localityName

string

選用:這是指較冗語的字詞,但通常是指地址的縣市部分。如為無法明確定義縣市 (或日本和中國) 的縣市,請將 localityName 留空,並使用 addressLine。

範例:美國城市、義大利市鎮、英國郵鎮。

administrativeAreaName

string

OPTIONAL:這個國家/地區的頂層子區域"範例:美國州別、IT 區域、中國省、日本縣。"

postalCodeNumber

string

OPTIONAL:儘管名稱不同,postalCodeNumber 值通常都是英數字元。例如:「94043」、「SW1W」和「SW1W 9TQ」。

countryCode

string

OPTIONAL:客戶地址的國家/地區代碼,格式為 ISO-3166-1 Alpha-2。

項目

訂單中商品的相關資訊。

JSON 表示法
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
欄位
description

string

OPTIONAL:購買的商品的說明。不適用於所有訂單類型。

merchant

string

必要:商品的賣家、藝人或製造商。

quantity

string (Int64Value format)

OPTIONAL:訂購的商品數量。

如果整數數量不適用於產品 (例如計量付費產品可能為小數),系統會忽略這個欄位。

totalPrice

string (Int64Value format)

OPTIONAL:此商品的總價,以 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)

REQUIRED:開始退款的時間戳記,以自 Epoch 紀元時間起算的毫秒數表示。

PaymentCardDetails

信用卡和簽帳金融卡專屬付款資料。

JSON 表示法
{
  "authResult": enum (AuthResult)
}
欄位
authResult

enum (AuthResult)

必要:付款驗證的結果。

AuthResult

付款驗證結果。

列舉
UNKNOWN_RESULT 不要設定這個預設值!
APPROVED 認證已核准。
DENIED 驗證遭拒。
NOT_ATTEMPTED 未嘗試驗證。