请求对象

本参考介绍了可在您的网站中使用的 Google Pay API 请求对象选项。需要配置多个请求对象才能向 Google Pay API 发出请求。为了配置预期体验,系统会向 Google Pay API 客户端库中的类方法传递对象。

PaymentOptions

当您测试完您的实现并准备好接收来自买家的付款之后,就可以为正式版环境配置此对象。

如果您在集成中设置了动态价格更新,请确保添加 MerchantInfoPaymentDataCallbacks 字段。

属性 类型 必要性 说明
environment 字符串 可选
  • PRODUCTION:用于在为网域指定和配置有效的 Google 商家 ID 时返回可扣款的付款方式。
  • TEST:适用于测试的虚拟付款方式(默认)。
MerchantInfo MerchantInfo 可选 此对象可提供请求付款数据的商家的相关信息。
paymentDataCallbacks PaymentDataCallbacks 可选 此对象可声明用于动态价格更新的回调。

示例

以下示例配置使用了适用于测试环境的不可扣款的付款方式。其中包含商家信息和付款数据回调。

    {
      environment: "TEST",
      merchantInfo: {
        merchantName: "Example Merchant",
        merchantId: "0123456789"
      },
      paymentDataCallbacks: {
        onPaymentDataChanged: onPaymentDataChanged,
        onPaymentAuthorized: onPaymentAuthorized
      }
    }
    

IsReadyToPayRequest

此对象指定哪些付款方式受支持。

属性 类型 必要性 说明
apiVersion 数值 必需 主要 API 版本。对于此规范,该值为 2
apiVersionMinor 数值 必需 次要 API 版本。对于此规范,该值为 0
allowedPaymentMethods PaymentMethod[] 必需

指定是否支持 Google Pay API 所支持的一种或多种付款方式。

不需要 tokenizationSpecification 即可确定查看者是否已准备好付款。为每个受支持的 PaymentMethod 提供所有必需的 parameters 属性。

existingPaymentMethodRequired 布尔值 可选

如果设为 true,则 IsReadyToPayResponse 对象会包含一个额外属性,该属性用于说明访问者是否准备好使用 allowedPaymentMethods 中指定的一种或多种付款方式付款。

示例

此示例显示了如何为所有受支持的支付卡网络的支付卡和 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 必需 有关根据用户是否同意交易来为交易授权的详细信息。包含总价和价格状态。
callbackIntents 字符串[] 可选 PaymentDataCallbacks 指定以下回调 Intent:
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
emailRequired 布尔值 可选 设为 true 可请求电子邮件地址。
shippingAddressRequired 布尔值 可选 设为 true 可请求完整的送货地址。
shippingAddressParameters ShippingAddressParameters 可选 如果 shippingAddressRequired 设为 true,请指定送货地址限制。
shippingOptionRequired 布尔值 可选 使用 SHIPPING_OPTION 回调 Intent 时,可设置为 true。如果您要实现对“授权付款”或“动态价格更新”的支持,则必须使用此字段。如需了解详情,请参阅 ShippingOptionParameters
shippingOptionParameters ShippingOptionParameters[] 可选 设置默认选项。

示例

以下示例显示了如何为所有受支持的支付卡网络的支付卡和 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"
      }
    }
    

PaymentDataCallbacks

如果您在集成中设置了动态价格更新,请务必添加以下 onPaymentDataChangedonPaymentAuthorized 回调:

属性 类型 必要性 说明
onPaymentDataChanged 函数 可选 PaymentDataRequest 中设置以下 callbackIntents 值时会被调用:
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
onPaymentAuthorized 函数 必需 PaymentDataRequest 中设置以下 callbackIntents 值时会被调用:PAYMENT_AUTHORIZATION

示例

以下示例配置使用了设置动态价格更新所需的回调:

    {
      onPaymentDataChanged: onPaymentDataChanged,
      onPaymentAuthorized: onPaymentAuthorized
    }
    

PaymentDataRequestUpdate

此对象可指定新的交易信息、运费选项和错误以更新付款表格。

属性 类型 必要性 说明
newTransactionInfo TransactionInfo 可选 更新付款表格中的交易信息。
newShippingOptionParameters ShippingOptionParameters 可选 更新付款表格中的运费选项。
error PaymentDataError 可选 向付款表格添加错误消息。

示例

以下示例显示了可返回到 Google Pay API 的所有付款数据请求更新。

    {
      newTransactionInfo: {
       	displayItems: [
        {
          label: "Subtotal",
          type: "SUBTOTAL",
          price: "11.00",
        },
        {
          label: "Tax",
          type: "TAX",
          price: "1.00",
        }
      ],
      currencyCode: "USD",
      totalPriceStatus: "FINAL",
      totalPrice: "12.00",
      totalPriceLabel: "Total"
      },
      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"
      }
    }
    

MerchantInfo

此对象可提供请求付款数据的商家的相关信息。

属性 类型 必要性 说明
merchantId 字符串 必需 Google 商家 ID,在您的网站取得 Google 批准后签发。如果使用 PRODUCTIONenvironment 属性初始化 PaymentsClient,则必需此属性。如需详细了解批准过程以及如何获取 Google 商家 ID,请参阅集成核对清单
merchantName 字符串 可选 采用 UTF-8 编码的商家名称。商家名称会显示在付款表格中。若处于 TEST 环境,或者无法识别商家,系统会在付款表格中显示“向未经验证的商家付款”消息。
merchantOrigin 字符串 可选

发出请求的商家的完全限定域名。此字符串必须是启动了结算的商家网站的主机名。如果网站提供 Google Pay 付款按钮并以其他网站名义请求付款信息(通常是通过托管结算集成),则为必需属性。

示例

以下示例显示了包含 merchantNamemerchantInfo 对象。

    merchantInfo: {
        merchantName: "Example Merchant",
    }
    

PaymentMethod

此对象可指定 Google Pay API 支持且您的网站接受的一种或多种付款方式。

属性 类型 必要性 说明
type 字符串 必需

所支持付款方式的短标识符。目前仅支持 CARDPAYPAL 条目。

parameters 对象 必需 配置所提供的付款方式类型时所需的参数。如需详细了解 CARD 付款方式的预期值,请参阅 CardParameters。如需详细了解 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。对于 PAYPALPaymentMethod,请使用不带任何参数的 DIRECT

parameters 对象 必需 所选付款方式令牌化类型所特有的参数。

网关

type 设置为 PAYMENT_GATEWAY,可从 Google Pay API 支持的支付网关中检索付款信息和客户信息。请按照网关的说明指定 parameters 属性。常见的属性包括由 Google 签发的网关标识符以及由您的网关提供的网关帐号 ID。

以下示例演示了如何从付款网关检索信息:

    "tokenizationSpecification": {
      "type": "PAYMENT_GATEWAY",
      "parameters": {
        "gateway": "example",
        "gatewayMerchantId": "exampleGatewayMerchantId"
      }
    }

要查找受支持的网关的特定 "gateway":"gatewayMerchantId": 值,请使用下表。

网关 参数和文档
ACI

      "gateway": "aciworldwide"
      "gatewayMerchantId": "YOUR_ENTITY_ID"

开发者文档

Adyen

      "gateway": "adyen"
      "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

开发者文档

Alfa-Bank

      "gateway": "alfabank"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

APPEX

      "gateway": "epos"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Assist

      "gateway": "assist"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

结算系统

      "gateway": "billingsystems"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Blue Media

      "gateway": "bluemedia"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

BlueSnap

      "gateway": "bluesnap"
      "gatewayMerchantId": "YOUR_shopToken"

开发者文档

Braintree

      "gateway": "braintree"
      "braintree:apiVersion": "v1"
      "braintree:sdkVersion": "braintree.client.VERSION"
      "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID"
      "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"

开发者文档

Braspag

      "gateway": "cielo"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

CardConnect

      "gateway": "cardconnect"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Cathay United Bank

      "gateway": "cathaybk"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Chase Paymentech

      "gateway": "chase"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Checkout.com

      "gateway": "checkoutltd"
      "gatewayMerchantId": "YOUR_PUBLIC_KEY"

开发者文档

CloudPayments

      "gateway": "cloudpayments"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Computop

      "gateway": "computop"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Cybersource

      "gateway": "cybersource"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Datatrans

      "gateway": "datatrans"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Dotpay

      "gateway": "dotpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

EasyPay

      "gateway": "easypay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

EBANX

      "gateway": "ebanx"
      "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"

开发者文档

eCard

      "gateway": "ecard"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

ECPay

      "gateway": "ecpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

eGHL

      "gateway": "eghl"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

eSafe

      "gateway": "esafe"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Evo Payment Gateway

      "gateway": "evopaymentgateway"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Fat Zebra

      "gateway": "fatzebra"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

First Data

      "gateway": "firstdata"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Gestpay

      "gateway": "gestpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Global One Pay

      "gateway": "globalonepay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Global Payments

      "gateway": "globalpayments"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

GMO Payment Gateway

      "gateway": "gmopg"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

GoPay

      "gateway": "gopay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

GP Webpay

      "gateway": "gpwebpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

HiTrust

      "gateway": "hitrustpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

IMSolutions

      "gateway": "imsolutions"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

iPay88

      "gateway": "ipay88"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

iQmetrix

      "gateway": "iqmetrixpaymentservicesgateway"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

JudoPay

      "gateway": "judopay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

LogPay

      "gateway": "logpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Lyra

      "gateway": "lyra"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Mastercard Payment Gateway Services

      "gateway": "mpgs"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

MOBI.Money

      "gateway": "mobimoney"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Molpay

      "gateway": "molpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Moneris

      "gateway": "moneris"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Moneta

      "gateway": "moneta"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Monext

      "gateway": "monext"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Money.Mail.Ru

      "gateway": "moneymailru"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Multicarta

      "gateway": "mulitcarta"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Mundipagg

      "gateway": "mundipagg"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

MyCheck

      "gateway": "mycheck"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

MyPay

      "gateway": "mypay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

没有开发者文档

Newebpay

      "gateway": "newebpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Nexi

      "gateway": "nexi"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

NMI

      "gateway": "creditcall"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Nuvei

      "gateway": "nuvei"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

PayLane

      "gateway": "paylane"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Payler

      "gateway": "payler"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Paysafe

      "gateway": "paysafe"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Payture

      "gateway": "payture"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

PayU

      "gateway": "payu"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Portmone

      "gateway": "portmonecom"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Przelewy24

      "gateway": "przelewy24"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

RBK.money

      "gateway": "rbkmoney"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Redsys

      "gateway": "redsys"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Sberbank

      "gateway": "sberbank"
      "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"

开发者文档

Sipay

      "gateway": "sipay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Softbank Payment Service

      "gateway": "sbps"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Solid

      "gateway": "solid"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Sony Payment Services

      "gateway": "sonypaymentservices"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Spreedly

      "gateway": "spreedly"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Square

      "gateway": "square"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Stripe

      "gateway": "stripe"
      "stripe:version": "2018-10-31"
      "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"

开发者文档

TapPay

      "gateway": "tappay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Tinkoff

      "gateway": "tinkoff"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

theMap

      "gateway": "themap"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

TPay.com

      "gateway": "tpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Tranzzo

      "gateway": "tranzzo"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Uniteller

      "gateway": "uniteller"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Vantiv

      "gateway": "vantiv"
      "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID"
      "vantiv:merchantOrderId": "YOUR_ORDER_ID"
      "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID"
      "vantiv:merchantReportGroup": "*web"

开发者文档

Veritrans

      "gateway": "veritrans"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Vindicia

      "gateway": "vindicia"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

WayForPay

      "gateway": "wayforpay"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Wirecard

      "gateway": "wirecard"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Worldnet

      "gateway": "worldnet"
      "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

开发者文档

Worldpay

      "gateway": "worldpay"
      "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"

开发者文档

Yandex.Checkout

      "gateway": "yandexcheckout"
      "gatewayMerchantId": "YOUR_SHOP_ID"

开发者文档

Direct

type 设置为 DIRECT 可直接在您的服务器上解密响应。此配置需要满足 Google 额外的数据安全要求,并会增加符合 PCI DSS 规定的复杂度。

属性 类型 必要性 说明
protocolVersion 字符串 必需 在响应中显示的加密/签名协议版本。当前 ECv2 受支持。如需详细了解可用的加密和签名协议,请参阅付款数据加密
publicKey 字符串 必需 采用 Base64 编码的椭圆曲线公钥。如需了解详情,请参阅我们的商家加密文档中的加密公钥格式部分。
示例

在以下示例中,publicKey 值采用了缩写形式,以方便阅读。

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

CardParameters

此对象可让您指定所接受的支付卡类型。Google 会根据您配置的选项过滤付款人的可用支付卡。

属性 类型 必要性 说明
allowedAuthMethods 字符串[] 必需

支持用于对卡交易进行身份验证的字段。

  • PAN_ONLY:此身份验证方法与用户的 Google 帐号中保存的支付卡相关联。返回的付款数据包含个人帐号 (PAN) 以及到期月份和到期年份。
  • CRYPTOGRAM_3DS:此身份验证方法与存储为 Android 设备令牌的卡相关联。返回的付款数据包括在设备上生成的 3D 安全 (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 字符串[] 可选 允许送货的国家/地区的 ISO 3166-1 alpha-2 国家/地区代码值。如果未指定此对象,就意味着支持所有送货国家/地区。
phoneNumberRequired 布尔值 可选 如果所提供的送货地址需要填写电话号码,请将此属性设为 true

示例

以下示例是针对美国送货地址的请求。

    {
      "allowedCountryCodes": ["US"]
    }
    

ShippingOptionParameters

属性 类型 必要性 说明
shippingOptions SelectionOption 必需 适用于当前请求的所有运费选项。
defaultSelectedOptionId 字符串 可选 所选的默认运费选项的标识符。如果未提供此字段的值,那么第一个选项是默认选项。

示例

以下示例显示了付款表格的所有运费选项以及默认的运费选项。

    {
      defaultSelectedOptionId: "0",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "$0.00: Free shipping",
          "description": "Free Shipping delivered in 5 business days."
        },
        {
          "id": "shipping-002",
          "label": "$1.99: Standard shipping",
          "description": "Standard shipping delivered in 3 business days."
        },
        {
          "id": "shipping-003",
          "label": "$1000: Express shipping",
          "description": "Express shipping delivered in 1 business day."
        }
      ]
    }
    

SelectionOption

属性 类型 必要性 说明
id 字符串 必需 开发者可将需要返回的任何值放在 PaymentData 中。
label 字符串 必需 要显示为选项的标签。
description 字符串 可选 显示在选项标签下方的描述性文本。

示例

以下示例显示了一个运费选项。

    {
      "id": "shipping-003",
      "label": "$10: Express shipping",
      "description": "Express shipping delivered in 1 business day."
    }
    

TransactionInfo

此对象描述了一个用于确定付款人是否能付款的交易。它用于显示付款授权对话框。下表详细介绍了对象的属性。

属性 类型 必要性 说明
currencyCode 字符串 必需 ISO 4217 字母货币代码。
countryCode 字符串 可选(必须为欧洲经济区 (EEA) 的国家/地区提供)

ISO 3166-1 alpha-2 国家/地区代码,用于表示处理交易的位置。必须为欧洲经济区 (EEA) 的国家/地区的商家提供。

transactionId 字符串 可选 用于标识交易尝试的唯一 ID。商家可以使用现有 ID 或生成特定的 ID 来进行 Google Pay 交易尝试。当您向 Google Transaction Events API 发送回调时,此字段为必填字段。
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"
        }
    }
    

ButtonOptions

此对象可让您配置 Google Pay 付款按钮。要详细了解按钮类型、颜色和显示要求,请参阅 Google 的品牌推广指南

属性 类型 必要性 说明
onClick

functionObject

必需 要在点击事件传送到 <button> 目标时调用的事件监听器回调
buttonColor 字符串 可选
  • default:由 Google 选择的默认值。目前为 black,但可能会随时间而变化(默认)。
  • black:适合在白色或浅色背景上使用的黑色按钮。
  • white:适合在彩色背景上使用的白色按钮。
buttonType 字符串 可选
  • long:“通过 Google Pay 购买”按钮(默认)。如果查看者浏览器中指定的语言与可用语言相符,系统可能会显示已翻译的按钮标签页。
  • short:不带“购买方式”文字的 Google Pay 付款按钮。

PayPalParameters

借助此对象,您可以定义 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 Order API 参考文档中的 payee 参数。

对于其他支持的参数,请参阅可选参数

PayPal 示例

以下示例显示了如何支持 PayPal 付款方式。

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

    

示例

此示例会生成一个 Google Pay 付款按钮,其中包含点击事件处理脚本和默认显示选项。

    {
      onClick: onGooglePaymentButtonClicked
    }