JSON 物件參考資源

本參考資料介紹可用於網站的 Google Pay API 物件選項。本參考資源涵蓋兩種物件類型:

要求物件

IsReadyToPayRequest

這個物件指定支援哪些付款方式。

屬性 類型 必要性 說明
apiVersion 數字 必要 主要 API 版本。針對這個規格,值為 2
apiVersionMinor 數字 必要 次要 API 版本。針對這個規格,值為 0
allowedPaymentMethods PaymentMethod[] 必要

指定 Google Pay API 支援的一或多種付款方式。

您不需 tokenizationSpecification 即可確認檢視者是否已準備付款。請為每項支援的 parameters 提供所有必要的 PaymentMethod 屬性。

existingPaymentMethodRequired 布林值 選用

如果設為 true,且目前的檢視者已準備好透過 allowedPaymentMethods 中指定的一或多個付款方式付款,則 isReadyToPay() 類別方法會傳回 。

範例

這個範例說明如何支援由所有受支援的發卡機構提供的付款卡和 Android 裝置代碼。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      }
    }
  ]
}

PaymentDataRequest

使用這個物件來設定 應用程式 對 Google Pay API 的支援。

屬性 類型 必要性 說明
apiVersion 數字 必要 主要 API 版本。針對這個規格,值為 2
apiVersionMinor 數字 必要 次要 API 版本。針對這個規格,值為 0
merchantInfo MerchantInfo 必要 要求付款資料的商家相關資訊。
allowedPaymentMethods PaymentMethod[] 必要 指定 Google Pay API 支援的一或多種付款方式。
transactionInfo TransactionInfo 必要 根據使用者是否同意交易,提供有關交易授權的詳細資料,包含總價和價格狀態。
emailRequired 布林值 選用 設為 true 即可要求電子郵件地址。
shippingAddressRequired 布林值 選用 設為 true 即可要求完整的運送地址。
shippingAddressParameters ShippingAddressParameters 選用 如果將 shippingAddressParameters 設為 true,請指定運送地址限制。

範例

下列範例說明如何支援由所有受支援的發卡機構提供的付款卡和 Android 裝置代碼。付款卡是透過範例閘道進行代碼化。系統會針對付款方式提出要求,以收取 12.34 美元的最終扣款金額。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantName": "Example Merchant"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "example",
          "gatewayMerchantId": "exampleGatewayMerchantId"
        }
      }
    }
  ],
  "transactionInfo": {
    "totalPriceStatus": "FINAL",
    "totalPrice": "12.34",
    "currencyCode": "USD"
  }
}

MerchantInfo

這個物件可提供要求付款資料的商家相關資訊。

屬性 類型 必要性 說明
merchantId 字串 必要 Google 核准您的網站之後所核發的 Google 商家識別碼。 如果透過 PRODUCTIONenvironment 屬性對 PaymentsClient 進行初始化,則為必要屬性。請參閱整合檢查清單,進一步瞭解核准程序及如何取得 Google 商家識別碼。
merchantName 字串 選用 採用 UTF-8 編碼的商家名稱,這項資訊會顯示在付款畫面中。如果系統無法識別商家或是目前處於 TEST 環境中,付款畫面上就會顯示「付款給未通過驗證的商家」訊息。
merchantOrigin 字串 選用

代表商家提出要求的供應商的完整網域。如果網站提供 Google Pay 付款按鈕並代表其他網站要求付款資訊 (通常是透過代管結帳整合功能),則為必要屬性。

範例

以下範例顯示了含有 merchantNamemerchantInfo 物件。

merchantInfo: {
    merchantName: "Example Merchant",
}

PaymentMethod

這個物件指定了 Google Pay API 和您的應用程式

屬性 類型 必要性 說明
type 字串 必要

支援的付款方式簡短 ID。 目前僅含 CARDPAYPAL

parameters 物件 必要 設定提供的付款方式類型時所需的參數。 請參閱 CardParameters,進一步瞭解 CARD 付款方式的預期值。如要進一步瞭解 PAYPAL 付款方式的預期值,請參閱 PAYPALParameters
tokenizationSpecification PaymentMethodTokenizationSpecification 選用

設定要接收付款資訊的帳戶或解密供應商。

如為 CARD 付款方式,則此為必要屬性。

如果這個屬性是 IsReadyToPayRequest 的一部分,則不具任何效力。

CARD

下列範例說明如何支援由所有受支援的發卡機構提供的付款卡和 Android 裝置代碼,以及範例閘道中的代碼化作業。

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
    "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "example",
      "gatewayMerchantId": "exampleGatewayMerchantId"
    }
  }
}
PAYPAL

以下範例顯示了如何支援 PAYPAL 付款方式。

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

TokenizationSpecification

這個物件可讓您設定要接收可扣款付款資訊的帳戶。

屬性 類型 必要性 說明
type 字串 必要

可支援所指定 PaymentMethod 的付款方式代碼化類型。適用於 CARD 的付款方式,使用 PAYMENT_GATEWAYDIRECT。對於 PAYPAL PaymentMethod,採用 DIRECT,無需參數。

parameters 物件 必要 所選付款方式代碼化類型的專屬參數。

閘道

type 設為 PAYMENT_GATEWAY,即可從 Google Pay API 支援的付款平台擷取付款與客戶資訊。請依據付款平台的要求,定義 parameters 屬性。一般屬性包括 Google 核發的付款平台識別碼,以及由您的付款平台提供的付款平台帳戶 ID。

Example
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "example",
    "gatewayMerchantId": "exampleGatewayMerchantId"
  }
}
ACI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "aciworldwide",
    "gatewayMerchantId": "YOUR_ENTITY_ID"
  }
}
Adyen
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "adyen",
    "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"
  }
}
Alfa-Bank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "alfabank",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Blue Media
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluemedia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
BlueSnap
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluesnap",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Braintree
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "braintree",
    "braintree:apiVersion": "v1",
    "braintree:sdkVersion": braintree.client.VERSION,
    "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID",
    "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"
  }
}
Braspag
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cielo",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CardConnect
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cardconnect",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Chase Paymentech
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "chase",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ACCOUNT_NUMBER"
  }
}
Checkout.com
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "checkoutltd",
    "gatewayMerchantId": "YOUR_PUBLIC_KEY"
  }
}
CloudPayments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cloudpayments",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CyberSource
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cybersource",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Datatrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "datatrans",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
EBANX
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "ebanx",
    "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"
  }
}
First Data
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "firstdata",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Global Payments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "globalpayments",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
GoPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gopay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
GMO Payment Gateway
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gmopg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
HiTrust
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "hitrustpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
IMSolutions
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "imsolutions",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
iQmetrix
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "iqmetrixpaymentservicesgateway",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Lyra
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "lyra",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
MPGS
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mpgs",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Money.Mail.Ru
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "moneymailru",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Mundipagg
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mundipagg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Newebpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "newebpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Nexi
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "nexi",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
NMI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "creditcall",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Paysafe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "paysafe",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Payture
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payture",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
PayU
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payu",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Przelewy24
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "przelewy24",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
RBKmoney
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "rbkmoney",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Redsys
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "redsys",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sberbank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sberbank",
    "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"
  }
}
Softbank Payment Service
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sbps",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sony Payment Services
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sonypaymentservices",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Square
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "square",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Stripe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
    "stripe:version": "2018-10-31",
    "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"
  }
}
TapPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tappay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Tinkoff
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tinkoff",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Uniteller
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "uniteller",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vantiv
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vantiv",
    "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID",
    "vantiv:merchantOrderId": "YOUR_ORDER_ID",
    "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID",
    "vantiv:merchantReportGroup": "*web"
  }
}
Veritrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "veritrans",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vindicia
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vindicia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Worldpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "worldpay",
    "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"
  }
}
Yandex
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "yandexcheckout",
    "gatewayMerchantId": "YOUR_SHOP_ID"
  }
}

直接

type 設為 DIRECT,即可直接在伺服器中直接解密回應。這個設定擁有來自 Google 的額外資料安全性需求,以及額外的 PCI DSS 遵循複雜度。

屬性 類型 必要性 說明
protocolVersion 字串 必要 回應中預期的加密/簽名通訊協定版本。 目前支援 ECv2。請參閱付款資料密碼編譯,進一步瞭解可用的加密和簽名通訊協定。
publicKey 字串 必要 採用 Base64 編碼的橢圓曲線公開金鑰。詳情請參閱我們商家密碼編譯說明文件中的加密公開金鑰格式一節。
範例

為了方便閱讀,在下列範例中的 publicKey 值會以縮寫形式書寫。

"tokenizationSpecification": {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP1aiNp.....kh3JUhiSZKHYF2Y="
  }
}

卡片參數

這個物件能讓您定義可接受的付款卡類型。Google 會根據您的設定選項篩選付款人的可用付款卡。

屬性 類型 必要性 說明
allowedAuthMethods string[] 必要

可支援驗證卡片交易的欄位。

  • PAN_ONLY:這種驗證方式與使用者 Google 帳戶中儲存的付款卡相關聯。傳回的付款資料包括個人帳號 (PAN) 和到期月份及到期年份。
  • CRYPTOGRAM_3DS:這種驗證方式與儲存為 Android 裝置代碼的卡片相關聯。傳回的付款資料包括在裝置上產生的 3-D 安全 (3DS) 密文。
allowedCardNetworks 字串 必要

Google Pay API 也支援您所支援的一或多個發卡機構。

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA
allowPrepaidCards 布林值 選用 如果不支援預付卡,請設為 false。預設值:指定的發卡機構可支援預付卡類別。
billingAddressRequired 布林值 選用 如果您需要帳單地址,請設為 true。只有在需要帳單地址來處理交易時,才要求提供。額外的資料要求可能會增加結帳程序的不便,並且導致轉換率下降。
billingAddressParameters BillingAddressParameters 選用 billingAddressRequired 設為 true 時傳回的預期欄位。

CARD 範例

以下範例顯示了如何支援所有可用發卡機構和卡片驗證方式:

{
  "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
  "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
}

BillingAddressParameters

這個物件可讓您為要求的帳單地址設定要傳回的額外欄位。

屬性 類型 必要性 說明
format 字串 選用

完成交易所需的帳單地址格式。

  • MIN:姓名、國家/地區代碼與郵遞區號 (預設)。
  • FULL:姓名、街道地址、縣市、地區、國家/地區代碼與郵遞區號。
phoneNumberRequired 布林值 選用 如果需要電話號碼來處理交易,請設為 true

範例

以下為要求簡化版帳單地址 (即屬性目前的預設值) 的範例。

{
  "format": "MIN"
}

ShippingAddressParameters

這個物件可用來設定運送限制。

屬性 類型 必要性 說明
allowedCountryCodes string[] 選用 允許運送之國家/地區的 ISO 3166-1 alpha-2 國家/地區代碼值。如果未指定這個物件,則允許使用所有運送地址所在國家/地區。
phoneNumberRequired 布林值 選用 如果提供的運送地址需要提供電話號碼,請設為 true

範例

以下範例顯示了美國運送地址的要求。

{
  "allowedCountryCodes": ["US"]
}

TransactionInfo

這個物件說明交易內容,藉此判斷付款人能否付款。這個物件可用來顯示付款授權對話方塊。下表詳細說明了物件的屬性。

屬性 類型 必要性 說明
currencyCode 字串 必要 ISO 4217 以英文字母構成的貨幣代碼。
countryCode 字串 選填 (EEA 國家/地區必須提供) 交易處理位置的 ISO 3166-1 alpha-2 國家/地區代碼。這是歐洲經濟區 (EEA) 的國家/地區商家必填的欄位。
totalPriceStatus 字串 必要

所用總價的狀態:

  • NOT_CURRENTLY_KNOWN用於功能檢查。如果交易是在 EEA 國家/地區所處理的,請不要使用此屬性。
  • ESTIMATED總價可能會根據回應詳情調整,例如根據帳單地址收取的銷售稅。
  • FINAL:向購物者顯示的總價金額不會變更。
totalPrice 字串 選用

交易總金額,可選用位數至小數點後兩位。除非 totalPriceStatus 已設為 NOT_CURRENTLY_KNOWN,否則這是必填欄位。

字串應遵循規則運算式格式:^[0-9]+(\.[0-9][0-9])?$

displayItems DisplayItem[] 選用 適用於當前付款要求的所有費用。適用於當前付款要求的所有費用。這項資訊只會在您使用授權付款動態價格更新功能時填入付款畫面。如果您執行「授權付款」或「動態價格更新」功能的支援服務,此欄位為必填。
totalPriceLabel 字串 選用 顯示項目中的總價自訂標籤。
checkoutOption 字串 選用

這些屬性會影響 Google Pay 付款畫面上顯示的提交按鈕文字。

  • DEFAULT:標準文字會套用至指定的 totalPriceStatus (預設值)。
  • COMPLETE_IMMEDIATE_PURCHASE:付款人確認選項後,系統會立即向所選付款方式扣款。只有當 totalPriceStatus 設為 FINAL 時,才能使用這個選項。

最終價格範例

以下為以美元為單位的最終價格範例。

{
  displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    }
  ],
    currencyCode: "USD",
    countryCode: "US",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total",
    checkoutOption: "DEFAULT",
    newShippingOptions: {
 	    defaultSelectedOptionId: "shipping-001",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "Free: Standard shipping",
          "description": "Free Shipping delivered in 5 business days."
        }
      ]
    },
    error: {
   	  reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
      message: "Cannot ship to the selected address",
      intent: "SHIPPING_ADDRESS"
    }
}

PayPal Parameters

這個物件能讓您定義 PayPal 參數。

屬性 類型 必要性 說明
purchase_context PurchaseContext 必要 用於說明訂單的實用資訊。

PayPal 範例

以下範例顯示了如何支援 PayPal 付款方式:

{
  "purchase_context": {
    "purchase_units": [
      {
        "payee": {
          "merchant_id": "PAYPAL_ACCOUNT_ID"
        }
      }
    ]
  }
}

PurchaseContext

這個物件可提供訂單相關資訊。

屬性 類型 必要性 說明
purchase_units PurchaseUnit[] 必要 說明客戶與商家之間的合約內容。

PurchaseUnit

這個物件可說明 PayPal 客戶與 PayPal 商家之間的合約內容。 詳情請參閱 PayPal Order API 說明文件中的 purchase_unit

屬性 類型 必要性 說明
payee Payee 必要 本次交易的收款人。

Payee

這個物件可提供收款商家的相關資訊。詳情請參閱 PayPal Orders API 參考說明文件中的 payee。

如要瞭解其他系統支援的參數,請參閱選用參數

PayPal 範例

以下範例顯示了如何支援 PayPal 付款方式。

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

回應物件

回應物件為 Google Pay API 用戶端方法傳回的物件。

PaymentData

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

屬性 類型 永遠存在 說明
apiVersion 數字 主要 API 版本。回應中的值會與您在 PaymentDataRequest 中提供的值相符。
apiVersionMinor 數字 次要 API 版本。回應中的值會與您在 PaymentDataRequest 中提供的值相符。
paymentMethodData PaymentMethodData 所選付款方式的相關資料。
email 字串 電子郵件地址 (如果 PaymentDataRequest 中的 emailRequired 設為 true)。有其他要求將這項屬性設定為 true,則不具任何效力。
shippingAddress 地址 運送地址 (如果 PaymentDataRequest 中的 shippingAddressRequired 設為 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"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

PaymentMethodData

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

屬性 類型 永遠存在 說明
type 字串 在 Google Pay 付款畫面中選取了 PaymentMethod 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 字串 卡片詳細資料。這個值通常為所選付款帳號的末四碼。
cardNetwork 字串

所選款項的發卡機構。 傳回的值會與 CardParameters中的 allowedCardNetworks 格式相符。

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

billingAddress 地址 與所提供付款方式相關聯的帳單地址 (如果 CardParameters 中的 billingAddressRequired 設為 true)。

範例

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

{
  "cardNetwork": "VISA",
  "cardDetails": "1234"
}

PaymentMethodTokenizationData

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

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

產生的付款方式代碼。

範例

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

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

地址

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

如果將 billingAddressFormat 設為 MIN,可能會傳回 MIN 地址格式。運送地址會以 FULL 地址格式傳回。 MIN 格式回應中的所有屬性都存在於 FULL 格式回應中。

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

範例

以下範例顯示了含有多行街道地址資料的美國地址。

{
  "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": ""
}