本參考資料說明要用於網站的 Google Pay API 回應物件選項。回應物件是由 Google Pay API 用戶端方法傳回的物件。
IsReadyToPayResponse
這個物件會提供相關資訊,說明網站訪客是否能向要求提供付款資訊的網站提供這類資訊。
| 屬性 | 類型 | 一律存在 | 說明 |
|---|---|---|---|
result |
布林值 | 是 | 目前訪客可以向要求提供付款資訊的網站提供相關資訊。 訪客能否付款,可能與網頁瀏覽器能否顯示指定付款方式的必要元件有關。包括登入 Google 帳戶並提供付款方式。 |
paymentMethodPresent |
布林值 | 否 |
如果 只有在 如果 |
範例
以下範例說明目前訪客何時能向要求提供付款資訊的網站提供這類資訊。
{ "result": true }
PaymentData
這是付款人核准付款後,Google 傳回的回應物件。
PaymentDataRequest.PaymentDataRequest.PaymentDataRequest。| 屬性 | 類型 | 一律存在 | 說明 |
|---|---|---|---|
apiVersion |
數字 | 是 | 主要 API 版本。回應中的值與 中提供的值相符。PaymentDataRequest |
apiVersionMinor |
數字 | 是 | API 子版本。回應中的值與 中提供的值相符。PaymentDataRequest |
paymentMethodData |
PaymentMethodData | 是 | 所選付款方式的相關資料。 |
email |
字串 | 否 | 電子郵件地址 (如果 emailRequired 在
PaymentDataRequest 中設為 true)。
如果其他要求已將屬性設為 true,則不會有任何影響。 |
shippingAddress |
地址 | 否 | 運送地址 (如果 shippingAddressRequired 在
PaymentDataRequest 中設為 true)。 |
範例
這個 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 |
字串 | 選用 | 說明叫用付款資料回呼的原因。
|
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 |
字串 | 是 |
PaymentMethod
在 Google Pay 付款表單中選取「type」。
|
description |
字串 | 是 | 向使用者顯示的訊息,說明這筆交易的付款方式。 |
info |
物件 | 是 | 這個屬性的值取決於傳回的付款方式 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 |
字串 | 是 | 資訊卡的詳細資料。這個值通常是所選付款帳號的末四碼。 |
assuranceDetails |
AssuranceDetailsSpecifications | 是 | 如果 assuranceDetailsRequired 在
CardParameters 中設為 true,這個物件會提供相關資訊,說明系統對傳回的付款資料執行的驗證作業。
|
cardNetwork |
字串 | 是 | 所選付款方式的支付卡網路。
傳回的值符合
CardParameters 中 這個卡片網路值不應向買家顯示。需要買家卡片詳細資料時,就會使用這項功能。舉例來說,如果客戶服務需要這個值,才能識別買家交易時使用的卡片。如要提供使用者可見的說明,請改用 PaymentMethodData 的 |
billingAddress |
地址 | 否 | 如果 billingAddressRequired 在
CardParameters 中設為 true,則為與所提供付款方式相關聯的帳單地址。
|
cardFundingSource |
字串 | 是 | 所選付款方式的卡片資金來源。
|
範例
這個範例顯示 Visa 網路上的卡片。
{ "cardNetwork": "VISA", "cardDetails": "1234", "cardFundingSource": "CREDIT", "assuranceDetails": { "cardHolderAuthenticated": false, "accountVerified": true } }
AssuranceDetailsSpecifications
這個物件會提供相關資訊,說明系統對傳回的付款憑證執行的驗證作業,以便套用合適的付款方式風險檢查程序。
| 名稱 | 類型 | 說明 |
|---|---|---|
accountVerified |
布林值 | 如為 true,代表系統已對傳回的付款憑證執行 Cardholder 擁有權驗證。 |
cardHolderAuthenticated |
布林值 |
如為 如為 |
即使不使用 assuranceDetails 欄位,您也可以接收及處理回應物件。如要接收這個物件,請在要求物件的
CardParameters 中加入 assuranceDetailsRequired: true。
PaymentMethodTokenizationData
這個物件會提供付款方式的權杖化資料。
| 屬性 | 類型 | 一律存在 | 說明 |
|---|---|---|---|
type |
字串 | 是 | 要套用至所選付款方式的權杖化類型。
這個值與 中設定的 type 相符。PaymentMethodTokenizationSpecification
|
token |
字串 | 否 | 產生的付款方式權杖。
|
範例
這是為 example 閘道準備的權杖化回應範例。
{ "type": "PAYMENT_GATEWAY", "token": "examplePaymentMethodToken" }
PaymentAuthorizationResult
這個物件會提供付款授權結果的相關資訊。
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
transactionState |
字串 | 必填 | 交易狀態會根據下列其中一個商家結果而解決:
|
error |
PaymentDataError | 選用 | 必要時,系統會重新嘗試付款,並在付款頁面中向使用者顯示錯誤訊息。 |
範例
以下範例顯示處理付款後傳回的付款結果:
{ "transactionState": "ERROR", "error": { "reason": "PAYMENT_DATA_INVALID", "message": "Cannot pay with payment credentials", "intent": "PAYMENT_AUTHORIZATION" } }
PaymentDataError
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
reason |
字串 | 必填 | 預先定義的錯誤原因清單:
|
message |
字串 | 必填 | 向使用者顯示在對話方塊中的錯誤訊息。 |
intent |
字串 | 必填 | 錯誤的意圖。 這必須是在流程開始時,於
|
範例
這個範例顯示要在付款結帳頁面中呈現的錯誤意圖和訊息。
{ "error": { "reason": "SHIPPING_OPTION_INVALID", "message": "This shipping option is invalid for the given address", "intent": "SHIPPING_OPTION" } }
地址
這個物件會提供所要求郵寄地址的相關資訊。所有屬性都是字串。
地址可以 MIN、FULL 和 FULL-ISO3166 格式傳回。下表列出各格式的屬性。
| 屬性 | 地址格式 | 說明 |
|---|---|---|
name |
MIN、FULL、FULL-ISO3166 |
收件者的全名。 |
postalCode |
MIN、FULL、FULL-ISO3166 |
郵遞區號。 |
countryCode |
MIN、FULL、FULL-ISO3166 |
ISO 3166-1 alpha-2 國家/地區代碼。 |
phoneNumber |
MIN、FULL、FULL-ISO3166 |
電話號碼 (如果 phoneNumberRequired 在
PaymentDataRequest 中設為
true)。
|
address1 |
FULL、FULL-ISO3166 |
地址的第一行。 |
address2 |
FULL、FULL-ISO3166 |
地址的第二行。 |
address3 |
FULL、FULL-ISO3166 |
地址的第三行。 |
locality |
FULL、FULL-ISO3166 |
城市、城鎮、社區或郊區。 |
administrativeArea |
FULL、FULL-ISO3166 |
國家/地區的次級行政區,例如州或省。 |
sortingCode |
FULL、FULL-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 |
字串 | 必填 | 國家/地區的次級行政區,例如州或省。 |
countryCode |
字串 | 必填 | ISO 3166-1 alpha-2 國家/地區代碼。 |
locality |
字串 | 必填 | 城市、城鎮、社區或郊區。 |
postalCode |
字串 | 必填 | 系統會根據國家/地區遮蓋郵遞區號。如果是加拿大和英國,這項資訊只包含前三個字元。如果是美國,則包含前五碼。 |
iso3166AdministrativeArea |
字串 | 選用 |
與 administrativeArea 相對應的 ISO 3166-2 行政區代碼。只有在運送地址格式為 FULL-ISO3166 時才會顯示。 |
範例
這個範例會顯示在付款畫面中選取的地址。
{ "administrativeArea": "NY", "countryCode": "US", "locality": "New York", "postalCode": "10011" "iso3166AdministrativeArea": "US-NY" }
SelectionOptionData
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
id |
字串 | 必填 | 與「SelectionOption.id」相符 |
範例
這個範例會顯示在付款畫面中選取的運送選項。
{ "id": "shipping-001" }
OfferData
這個物件會提供在付款畫面中輸入的優惠代碼相關資訊。
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
redemptionCodes |
陣列 | 一律存在 | 輸入付款單的優惠碼組合。包括已核准的代碼。 |
範例
以下範例顯示具有 redemptionCodes 陣列的 OfferData 物件。
"offerData": { "redemptionCodes": ["PROMOTIONALCODE"] }