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)

必要項目:用來指明這項查詢應查詢的付款條件。

existingGoogleClaimId

string

選用:Google 為先前呼叫 getDisputeInquiryReport 而產生的字串,可明確識別此客戶爭議著作權聲明。

如果沒有這項資訊,系統就會產生新的著作權聲明 ID。如果呼叫端提供先前呼叫 getDisputeInquiryReport 所傳回的 googleClaimId,表示該客戶爭議仍持續發生。

在這裡填入或產生的著作權聲明 ID 會傳回回應的「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)

REQUIRED:呼叫的結果。

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)

選用:根據擷取要求 ID 查詢。

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

必要項目:這筆交易的專屬 ID。這是 Google 在查詢的 capture 呼叫期間產生的 requestId

RequestOriginator

機構或機構子群組的相關資訊,以及提出要求的員工 (選填)。這可讓 Google 找出問題或濫用行為,並透過比 paymentIntegratorAccountId 更精細的層級實施控管措施。如果呼叫端是來自多個外部用戶端的中介服務供應商,就顯得特別實用。

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

string

必要項目:提出要求的公司、機構或機構群組的 ID,在這個 paymentIntegratorAccountId 中不得重複。

organizationDescription

string

必要項目:人類可讀的機構名稱或說明,有助於 Google 員工和該機構的整合商順利溝通。

agentId

string

選用:提出要求的機構 (員工) 的專屬 ID,該機構應用於提出要求的 organizationId。在這個 organizationId 中不得重複。

GetDisputeInquiryReportResultCode

getDisputeInquiryReport 方法呼叫的結果。

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

OPTIONAL:下單時間的時間戳記,以 Epoch 紀元時間起算的毫秒數表示。不適用於部分訂單類型。

orderId

string

選用:用來識別此訂單的字串。不適用於部分訂單類型。

currencyCode

string

選填:適用於這筆訂單的所有金額的 ISO 4217 貨幣代碼,由 3 個字母組成。不適用於部分訂單類型。

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

選用:這個國家/地區的頂層行政劃分」例如:美國各州、義大利地區、中國省份、日本的都/道/府/縣。」

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 指定貨幣的 micros 表示。

付款

付款相關資訊。

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)

必要項目:退款開始的時間戳記,以 Epoch 紀元時間起算的毫秒數表示。

PaymentCardDetails

信用卡和帳款相關的付款資料。

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

enum (AuthResult)

必要項目:付款驗證結果。

AuthResult

付款驗證結果。

列舉
UNKNOWN_RESULT 切勿設定這個預設值!
APPROVED 已核准授權。
DENIED 驗證遭拒。
NOT_ATTEMPTED 未嘗試驗證,