本參考資料說明可與應用程式搭配使用的 Google Pay API 回應物件選項。回應物件是由 Google Pay API 用戶端方法傳回的物件。
PaymentData
這是付款人核准付款後,由 Google 傳回的回應物件。
PaymentDataRequest.PaymentDataRequest.PaymentDataRequest。| 屬性 | 類型 | 一直存在 | 說明 |
|---|---|---|---|
apiVersion |
數字 | 是 | 主要 API 版本。回應中的值與 |
apiVersionMinor |
數字 | 是 | API 子版本。回應中的值與 |
paymentMethodData |
PaymentMethodData | 是 | 所選付款方式的相關資料。 |
email |
字串 | 否 | 電子郵件地址 (如果在
PaymentDataRequest。
如果其他要求的屬性設為 true,則不會有任何影響。 |
shippingAddress |
地址 | 否 | 運送地址 (如果 |
範例
以下是 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" } } }
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 | 是 | 如果 CardParameters. |
cardNetwork |
字串 | 是 | 所選付款方式的付款卡網路。 傳回的值與 CardParameters 中 CardParameters。 請勿向買家顯示這個發卡組織值。需要買家卡片詳細資料時,就會使用這個方法。舉例來說,如果客戶服務需要這個值,才能識別買家在交易中使用的卡片。如要提供使用者可查看的說明,請改用 PaymentMethodData 的 |
billingAddress |
地址 | 否 | 如果 CardParameters。 |
cardFundingSource |
字串 | 是 | 所選付款方式的卡片資金來源。
|
範例
這個範例顯示的是 Visa 網路上的卡片。
{ "cardNetwork": "VISA", "cardDetails": "1234", "cardFundingSource": "CREDIT", "assuranceDetails": { "cardHolderAuthenticated": false, "accountVerified": true } }
AssuranceDetailsSpecifications
這個物件會提供相關資訊,說明系統對傳回的付款憑證執行的驗證作業,以便套用合適的付款方式風險檢查程序。
| 名稱 | 類型 | 說明 |
|---|---|---|
accountVerified |
布林值 | 如為 true,代表系統已對傳回的付款憑證執行Cardholder擁有權驗證。 |
cardHolderAuthenticated |
布林值 |
如為 如為 |
即使不使用 assuranceDetails 欄位,您也可以接收及處理回應物件。如要接收這個物件,請在 Request 物件的
CardParameters。
PaymentMethodTokenizationData
這個物件會提供付款方式的權杖化資料。
| 屬性 | 類型 | 一直存在 | 說明 |
|---|---|---|---|
type |
字串 | 是 | 要套用至所選付款方式的權杖化類型。
這個值與 PaymentMethodTokenizationSpecification
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 |
如果 PaymentDataRequest。 |
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" }
IntermediatePaymentData
當使用者在付款畫面中變更運送地址或運送選項時,Google Pay API onPaymentDataChanged() 輸入內容會傳回這個物件。
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
callbackTrigger |
字串 | 選用 | 說明叫用付款資料回呼的原因。
|
shippingAddress |
IntermediateAddress | 選用 | 付款表中選取的地址。 |
shippingOptionData |
SelectionOptionData | 選用 | 在付款畫面中選取的運送選項。 |
paymentMethodData |
IntermediatePaymentMethodData | 選用 | 在付款畫面中選取的付款方式資料。 |
範例
這個範例顯示 Google Pay API 針對運送地址變更傳回的中繼酬載。
{ "callbackTrigger": "SHIPPING_ADDRESS", "shippingAddress": { "administrativeArea": "NY", "countryCode": "US", "locality": "New York", "postalCode": "10011" }, "shippingOptionData": { "id": "shipping-001" } }
這個範例顯示付款方式變更時傳回的中繼酬載。
{ "callbackTrigger": "PAYMENT_METHOD", "paymentMethodData": { "type": "CARD", "info": { "cardNetwork": "VISA", "cardFundingSource": "CREDIT", "billingAddress": { "administrativeArea": "NY", "countryCode": "US", "locality": "New York", "postalCode": "10011" } } } }
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" }
IntermediatePaymentMethodData
這個物件包含所選付款方式的有限資訊,用於開發人員回呼。
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
type |
字串 | 必填 | 付款方式類型。這個回呼僅支援 CARD。 |
info |
IntermediateCardInfo | 選用 | 所選卡片的相關資訊。只有在 type 為 CARD 時才會顯示。 |
IntermediateCardInfo
這個物件包含所選卡片的有限資訊,用於開發人員回呼。
| 屬性 | 類型 | 必要性 | 說明 |
|---|---|---|---|
billingAddress |
IntermediateAddress | 選用 | 與卡片相關聯的帳單地址。只有在帳單地址設為必填時,系統才會填入資料。 |
cardNetwork |
字串 | 選用 | 所選付款卡的發卡機構。傳回的值與 CardParameters。 這個卡片網路值不應向買家顯示。 |
cardFundingSource |
字串 | 選用 | 所選付款卡的資金來源。
|