回應物件

本參考資料說明可用於網站的 Google Pay API 回應物件選項。回應物件為 Google Pay API 用戶端方法傳回的物件。

IsReadyToPayResponse

針對網站訪客是否能將付款資訊提供給要求該資訊的網站,這個物件可提供相關資訊

屬性 類型 永遠存在 說明
result boolean 目前的訪客能將付款資訊提供給要求該資訊的網站。 訪客能否付款,可能取決於他們使用的瀏覽器可否顯示指定付款方式的所需元件。訪客登入 Google 帳戶並提供付款方式之後的狀態即屬於這種情況。
paymentMethodPresent boolean

如為 true,代表訪客具備您在 IsReadyToPayRequestallowedPaymentMethods 屬性中指定的一或多種付款方式。

只有 IsReadyToPayRequest 中的 existingPaymentMethodRequired 設為 true 時才會存在。

如果透過 TESTenvironment 屬性對 PaymentsClient 進行初始化,付款方式則視為一律存在。

範例

下列範例顯示目前訪客能將付款資訊提供給要求該資訊的網站的情況。

{
  "result": true
}

PaymentData

這是付款人核准付款後,由 Google 傳回的回應物件。

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest
屬性 類型 永遠存在 說明
apiVersion number 主要 API 版本。回應中的值與您在 PaymentDataRequest 中提供的值相符。
apiVersionMinor 數字 次要 API 版本。回應中的值與您在 PaymentDataRequest 中提供的值相符。
paymentMethodData PaymentMethodData 所選付款方式的相關資料。
email string 電子郵件地址 (如果 PaymentDataRequest 中的 emailRequired 設為 true)。 如有其他要求將這項屬性設定為 true,則不具任何效力。
shippingAddress 地址 shippingAddressRequired 設為 true 時的運送地址 (位在 PaymentDataRequest 中)。

範例

這個 Google Pay API 版本 2.0 回應範例顯示 Google Pay 付款畫面中選取的 CARD 付款方式。我們已為 example 閘道產生付款方式代碼。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234",
      "cardFundingSource": "CREDIT"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

IntermediatePaymentData

如果付款畫面中的運送地址或運送選項發生變更,Google Pay API onPaymentDataChanged() 輸入內容就會傳回這個物件。

屬性 類型 必要性 說明
callbackTrigger String 選用

說明叫用付款資料回呼的原因。

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData 選用 使用者提供的促銷代碼。
shippingAddress IntermediateAddress 選用 付款畫面中的所選地址。
shippingOptionData SelectionOptionData 選用 付款畫面中的所選運送選項。

範例

以下範例顯示了 Google Pay API 傳回的中繼酬載。

{
  "callbackTrigger": "SHIPPING_ADDRESS",
  "offerData": {
    "redemptionCode": "exampleCode"
  },
  "shippingAddress": {
    "administrativeArea": "NY",
    "countryCode": "US",
    "locality": "New York",
    "postalCode": "10011"
  },
  "shippingOptionData": {
    "id": "shipping-001"
  }
}

PaymentMethodData

這個物件提供所選付款方式的資料。

屬性 類型 永遠存在 說明
type string PaymentMethod 在 Google Pay 付款畫面中選取了 type
description 字串

向使用者顯示的訊息,用於說明這項交易使用的付款方式。

info object 這項屬性的值會因傳回的付款方式 type 而異。如為 CARD,請參閱 CardInfo
tokenizationData PaymentMethodTokenizationData 所選付款方式的付款代碼化資料。

範例

這個回應範例顯示了使用者在 Google Pay 付款畫面中選取 CARD 付款方式之後,系統如何為 example 閘道產生付款方式代碼。

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

CardInfo

這個物件提供所選付款卡的相關資訊。

屬性 類型 永遠存在 說明
cardDetails string 卡片詳細資料。這個值通常為所選付款帳號的末四碼。
assuranceDetails AssuranceDetailsSpecifications 如果 CardParameters 中的 assuranceDetailsRequired 設為 true,這個物件會提供相關資訊,說明系統對傳回的付款資料執行的驗證作業。
cardNetwork 字串

所選款項的付款卡發卡機構。傳回的值與 allowedCardNetworks 格式相符,後者 位在 CardParameters 中。

這個發卡機構值不應向買家顯示。在必須提供買家詳細資料時,您可以使用這個值 舉例來說,如果客戶服務需要這個值來識別買家用於交易的卡片。如要向使用者顯示相關說明,請改用 PaymentMethodDatadescription 屬性。

billingAddress 地址 billingAddressRequired 設為 true時,與所提供付款方式相關聯的帳單地址。該屬性 位在 CardParameters 中。
cardFundingSource 字串

所選付款方式的卡片資金來源。

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

範例

這個範例顯示 Visa 發卡機構的卡片。

{
  "cardNetwork": "VISA",
  "cardDetails": "1234",
  "cardFundingSource": "CREDIT",
  "assuranceDetails": {
    "cardHolderAuthenticated": false,
    "accountVerified": true
  }
}

AssuranceDetailsSpecifications

這個物件會提供相關資訊,說明系統對傳回的付款憑證執行的驗證作業,以便套用合適的付款方式風險檢查程序。

姓名 類型 說明
accountVerified 布林值 如為 true,代表系統已對傳回的付款憑證執行Cardholder擁有權驗證。
cardHolderAuthenticated 布林值

如為 true,代表系統已對傳回的付款憑證執行身分識別與驗證 (ID&V)。

如為 false,則可執行與卡片交易相同的風險相關驗證。這項風險相關驗證可包括但不限於:在適用情況下,使用 3D Secure 協議進行進階程序。

即使不使用 assuranceDetails 欄位,您也可以接收及處理回應物件。如要接收這個物件,請在要求物件的 CardParameters 中加入 assuranceDetailsRequired: true

PaymentMethodTokenizationData

這個物件提供付款方式的代碼化資料。

屬性 類型 永遠存在 說明
type string 要套用至所選付款方式的代碼化類型。這個值與 type 相符,該屬性是在 PaymentMethodTokenizationSpecification 中設定。
token 字串

產生的付款方式代碼。

範例

這是針對 example 閘道準備的代碼化回應範例。

{
  "type": "PAYMENT_GATEWAY",
  "token": "examplePaymentMethodToken"
}

PaymentAuthorizationResult

這個物件提供付款授權結果的相關資訊。

屬性 類型 必要性 說明
transactionState String 必要 交易狀態是以下列其中一項商家結果判定:
  • SUCCESS
  • ERROR
error PaymentDataError 選用 需要重新付款時,使用者付款畫面中顯示的錯誤。

範例

以下範例顯示付款處理完後,系統傳回的付款結果:

{
  "transactionState": "ERROR",
  "error": {
    "reason": "PAYMENT_DATA_INVALID",
    "message": "Cannot pay with payment credentials",
    "intent": "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

屬性 類型 必要性 說明
reason String 必要

預先定義錯誤原因的清單:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message String 必要 在對話方塊中向使用者顯示的錯誤訊息。
intent String 必要

錯誤的意圖。這項屬性必須在流程開始時便已登錄在 PaymentDataRequest 中。

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

範例

以下範例顯示了要在付款畫面中顯示的錯誤意圖和訊息。

{
  "error": {
    "reason": "SHIPPING_OPTION_INVALID",
    "message": "This shipping option is invalid for the given address",
    "intent": "SHIPPING_OPTION"
  }
}

Address

這個物件提供有關所要求郵寄地址的資訊。所有屬性皆為字串。

地址可以 MINFULLFULL-ISO3166 格式傳回。下表列出各格式的屬性。

屬性 地址格式 說明
name MINFULLFULL-ISO3166 收件人的全名。
postalCode MINFULLFULL-ISO3166 郵遞區號。
countryCode MINFULLFULL-ISO3166 ISO 3166-1 alpha-2 國家/地區代碼。
phoneNumber MINFULLFULL-ISO3166 電話號碼 (如果 PaymentDataRequest 中的 phoneNumberRequired 設為 true)。
address1 FULLFULL-ISO3166 地址的第一行。
address2 FULLFULL-ISO3166 地址的第二行。
address3 FULLFULL-ISO3166 地址的第三行。
locality FULLFULL-ISO3166 市、鎮、鄰或郊區。
administrativeArea FULLFULL-ISO3166 行政區 (例如州或省)。
sortingCode FULLFULL-ISO3166 郵政編碼。
iso3166AdministrativeArea FULL-ISO3166 與 administrativeArea 相對應的 ISO 3166-2 行政區代碼。

範例

下列範例顯示了含有多行街道地址資料的美國 FULL-ISO3166 格式地址。

{
  "name": "John Doe",
  "address1": "c/o Google LLC",
  "address2": "1600 Amphitheatre Pkwy",
  "address3": "Building 40",
  "locality": "Mountain View",
  "administrativeArea": "CA",
  "countryCode": "US",
  "postalCode": "94043",
  "sortingCode": ""
  "iso3166AdministrativeArea": "US-CA"
}

IntermediateAddress

屬性 類型 必要性 說明
administrativeArea String 必要 行政區 (例如州或省)。
countryCode String 必要 ISO 3166-1 alpha-2 國家/地區代碼。
locality String 必要 市、鎮、鄰或郊區。
postalCode String 必要 各個國家/地區特定的郵遞區號 (會經過遮蓋)。如為加拿大和英國,這個值僅含前三個字元。如為美國,則包含前五個數字。
iso3166AdministrativeArea 字串 選用 與 administrativeArea 相對應的 ISO 3166-2 行政區代碼。只有在運送地址格式為 FULL-ISO3166 時才會顯示。

範例

以下範例顯示了付款畫面中的所選地址。

{
  "administrativeArea": "NY",
  "countryCode": "US",
  "locality": "New York",
  "postalCode": "10011"
  "iso3166AdministrativeArea": "US-NY"
}

SelectionOptionData

屬性 類型 必要性 說明
id String 必填 SelectionOption.id 相符

範例

以下範例顯示了付款畫面中的所選運送選項。

{
  "id": "shipping-001"
}

OfferData

這個物件提供在付款畫面中輸入的優惠碼相關資訊。

屬性 類型 必要性 說明
redemptionCodes 陣列 永遠存在 輸入付款單的促銷代碼組合。包括已核准的代碼。

範例

以下範例顯示含有 redemptionCodes 陣列的 OfferData 物件。

"offerData": {
    "redemptionCodes": ["PROMOTIONALCODE"]
}