JSON 对象参考

本参考介绍了可在您的网站中使用的 Google Pay API 对象选项。本参考中涉及两种类型的对象:

请求对象

IsReadyToPayRequest

此对象可指定所支持的付款方式。

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

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

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

existingPaymentMethodRequired boolean 可选

如果设为 true,且当前查看者能够使用 allowedPaymentMethods 中指定的一种或多种付款方式付款,isReadyToPay() 类方法将返回 true

示例

此示例显示了如何支持来自所有支持的卡网络的支付卡及 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 number 必需 主要 API 版本。对于此规范,该值为 2
apiVersionMinor number 必需 次要 API 版本。对于此规范,该值为 0
merchantInfo MerchantInfo 必需 请求付款数据的商家的相关信息。
allowedPaymentMethods PaymentMethod[] 必需 指定是否支持 Google Pay API 所支持的一种或多种付款方式。
transactionInfo TransactionInfo 必需 所授权交易的详细信息(基于用户是否同意交易)。包含总价和价格状态。
callbackIntents string[] 可选 指定为其订阅了回调 intent 的 paymentDataCallback()。
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
emailRequired boolean 可选 设为 true 可请求电子邮件地址。
shippingAddressRequired boolean 可选 设为 true 可请求完整的送货地址。
shippingAddressParameters ShippingAddressParameters 可选 如果 shippingAddressRequired 设为 true,请指定送货地址限制。

示例

以下示例显示了如何支持来自所有支持的卡网络的支付卡及 Android 设备令牌。此示例针对 example 网关,对支付卡进行令牌化。该请求针对付款方式发出,以收取 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 string 必需 Google 商家 ID,在您的网站取得 Google 批准后签发。如果在 environment 属性为 PRODUCTION 的情况下初始化 PaymentsClient,则为必需属性。如需详细了解审批流程以及如何获取 Google 商家 ID,请参阅集成核对清单
merchantName string 可选 采用 UTF-8 编码的商家名称。商家名称会显示在付款表格中。若处于 TEST 环境,或者无法识别商家,系统会在付款表格中显示“向未经验证的商家付款”消息。
merchantOrigin string 可选

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

示例

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

merchantInfo: {
    merchantName: "Example Merchant",
    merchantId: "01234567890123456789"
}

PaymentMethod

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

属性 类型 必要性 说明
type string 必需

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

parameters object 必需 配置所提供的付款方式类型时所需的参数。如需详细了解 CARD 付款方式的预期值,请参阅 CardParameters。如需详细了解 PAYPAL 付款方式的预期值,请参阅 PAYPALParameters
tokenizationSpecification PaymentMethodTokenizationSpecification 可选

配置要接收付款信息的帐号或解密提供商。

如为 CARD 付款方式,则为必需属性。

如果此属性作为 IsReadyToPayRequest 的一部分提供,则不会产生任何效果。

CARD

以下示例显示了如何支持来自所有支持的卡网络的支付卡及 Android 设备令牌。此示例通过 example 网关展示了令牌化过程。

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

PaymentMethodTokenizationSpecification

此对象可让您配置要接收可扣款付款信息的帐号。

属性 类型 必要性 说明
type string 必需

对于给定的 PaymentMethod,支持某种付款方式令牌化类型。如为 CARD 付款方式,请使用PAYMENT_GATEWAYDIRECT。对于 PAYPAL PaymentMethod,请使用不带任何参数的DIRECT

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

Gateway

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

// [START EXAMPLE]
Example
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "example",
"gatewayMerchantId": "exampleGatewayMerchantId"  }
}
// [END EXAMPLE] // [START ACI]
ACI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "aciworldwide",
 "gatewayMerchantId": "YOUR_ENTITY_ID"   }
}
// [END ACI] // [START ADYEN]
Adyen
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "adyen",
 "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"   }
}
// [END ADYEN] // [START ALFA-BANK]
Alfa-Bank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "alfabank",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END ALFA-BANK] // [START BLUE_MEDIA]
Blue Media
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluemedia",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END BLUE_MEDIA] // [START BLUESNAP]
BlueSnap
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluesnap",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END BLUESNAP] // [START BRAINTREE]
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"   }
}
// [END BRAINTREE] // [START BRASPAG]
Braspag
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cielo",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END BRASPAG] // [START CARDCONNECT]
CardConnect
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cardconnect",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END CARDCONNECT] // [START CHASE_PAYMENTECH]
Chase Paymentech
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "chase",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ACCOUNT_NUMBER"   }
}
// [END CHASE_PAYMENTECH] // [START CHECKOUT]
Checkout.com
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "checkoutltd",
 "gatewayMerchantId": "YOUR_PUBLIC_KEY"   }
}
// [END CHECKOUT] // [START CLOUDPAYMENTS]
CloudPayments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cloudpayments",
 "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"   }
}
// [END CLOUDPAYMENTS] // [START CYBERSOURCE]
CyberSource
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cybersource",
 "gatewayMerchantId": "YOUR_MERCHANT_ID"   }
}
// [END CYBERSOURCE] // [START DATATRANS]
Datatrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "datatrans",
"gatewayMerchantId": "YOUR_MERCHANT_ID"  }
}
// [END DATATRANS] // [START EBANX]
EBANX
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "ebanx",
    "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"   }
}
// [END EBANX] // [START FIRST_DATA]
First Data
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "firstdata",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"   }
}
// [END FIRST_DATA] // [START GLOBAL_PAYMENTS]
Global Payments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "globalpayments",
"gatewayMerchantId": "YOUR_MERCHANT_ID"  }
}
// [END GLOBAL_PAYMENTS] // [START GOPAY]
GoPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gopay",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END GOPAY] // [START GMO_PAYMENT_GATEWAY]
GMO Payment Gateway
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gmopg",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END GMO_PAYMENT_GATEWAY] // [START HITRUST]
HiTrust
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "hitrustpay",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END HITRUST] // [START IMSOLUTIONS]
IMSolutions
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "imsolutions",
"gatewayMerchantId": "YOUR_MERCHANT_ID"  }
}
// [END IMSOLUTIONS] // [START IQMETRIX]
iQmetrix
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "iqmetrixpaymentservicesgateway",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END IQMETRIX] // [START LYRA]
Lyra
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "lyra",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END LYRA] // [START MPGS]
MPGS
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mpgs",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END MPGS] // [START MONEY_MAIL_RU]
Money.Mail.Ru
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "moneymailru",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END MONEY_MAIL_RU] // [START MUNDIPAGG]
Mundipagg
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mundipagg",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END MUNDIPAGG] // [START NEWEBPAY]
Newebpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "newebpay",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END NEWEBPAY] // [START NEXI]
Nexi
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "nexi",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END NEXI] // [START NMI]
NMI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "creditcall",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END NMI] // [START PAYSAFE]
Paysafe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "paysafe",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END PAYSAFE] // [START PAYTURE]
Payture
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payture",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END PAYTURE] // [START PAYU]
PayU
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payu",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END PAYU] // [START PRZELEWY24]
Przelewy24
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "przelewy24",
"gatewayMerchantId": "YOUR_MERCHANT_ID"  }
}
// [END PRZELEWY24] // [START RBKMONEY]
RBKmoney
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "rbkmoney",
"gatewayMerchantId": "YOUR_MERCHANT_ID"  }
}
// [END RBKMONEY] // [START REDSYS]
Redsys
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "redsys",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END REDSYS] // [START SBERBANK]
Sberbank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sberbank",
"gatewayMerchantId": "YOUR_ORGANIZATION_NAME"  }
}
// [END SBERBANK] // [START SOFTBANK_PAYMENT_SERVICE]
Softbank Payment Service
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sbps",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END SOFTBANK_PAYMENT_SERVICE] // [START SONY_PAYMENT_SERVICES]
Sony Payment Services
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sonypaymentservices",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END SONY_PAYMENT_SERVICES]// [START SQUARE]
Square
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "square",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END SQUARE] // [START STRIPE]
Stripe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
"stripe:version": "2018-10-31", "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"  }
}
// [END STRIPE] // [START TAPPAY]
TapPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tappay",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END TAPPAY] // [START TINKOFF]
Tinkoff
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tinkoff",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END TINKOFF] // [START UNITELLER]
Uniteller
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "uniteller",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END UNITELLER] // [START VANTIV]
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"  }
}
// [END VANTIV] // [START VERITRANS]
Veritrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "veritrans",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END VERITRANS] // [START VINDICIA]
Vindicia
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vindicia",
"gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"  }
}
// [END VINDICIA] // [START WORLDPAY]
Worldpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "worldpay",
"gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"  }
}
// [END WORLDPAY] // [START YANDEX]
Yandex
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "yandexcheckout",
"gatewayMerchantId": "YOUR_SHOP_ID"  }
}
// [END YANDEX]

Direct

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

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

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

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

CardParameters

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

属性 类型 必要性 说明
allowedAuthMethods string[] 必需

可支持卡交易身份验证功能的字段。

  • PAN_ONLY:此身份验证方法与留存在用户的 Google 帐号中的支付卡相关联。返回的付款数据包含个人帐号 (PAN) 以及到期月份和到期年份。
  • CRYPTOGRAM_3DS:此身份验证方法与存储为 Android 设备令牌的卡相关联。返回的付款数据包括在设备上生成的 3D 安全 (3DS) 密文。
allowedCardNetworks string 必需

您和 Google Pay API 都支持的一个或多个卡网络。

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA
allowPrepaidCards boolean 可选 如果您不支持预付卡,请将此属性设为 false。默认值:所指定的卡网络支持预付卡类。
billingAddressRequired boolean 可选 如果您要求提供帐单邮寄地址,请将此属性设为 true。请仅在必须提供帐单邮寄地址才能处理交易的情况下,请求帐单邮寄地址。额外的数据请求可能会增加结帐流程中的不便,并可能导致转化率下降。
billingAddressParameters BillingAddressParameters 可选 如果 billingAddressRequired 设为 true,则返回预期字段。

CARD 示例

以下示例显示了如何支持所有可用的卡网络和卡身份验证方法:

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

BillingAddressParameters

此对象可让您设置要为所请求的帐单邮寄地址返回的其他字段。

属性 类型 必要性 说明
format string 可选

完成交易所需的帐单邮寄地址格式。

  • MIN:姓名、国家/地区代码和邮政编码(默认)。
  • FULL:姓名、街道地址、市行政区、区域、国家/地区代码和邮政编码。
phoneNumberRequired boolean 可选 如果必须提供电话号码才能处理交易,请将此属性设为 true

示例

以下示例显示了如何请求简化版的帐单邮寄地址,即属性当前的默认值。

{
  "format": "MIN"
}

ShippingAddressParameters

此对象可用于设置送货限制。

属性 类型 必要性 说明
allowedCountryCodes string[] 可选 允许送货的国家/地区的 ISO 3166-1 alpha-2 国家/地区代码值。如果未指定此对象,则允许所有送货国家/地区。
phoneNumberRequired boolean 可选 如果所提供的送货地址需要填写电话号码,请将此属性设为 true

示例

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

{
  "allowedCountryCodes": ["US"]
}

TransactionInfo

此对象描述了一个用于确定付款人是否能付款的交易。它用于显示付款授权对话框。

属性 类型 必要性 说明
currencyCode string 必需 ISO 4217 以英文字母代表的货币代码。
totalPriceStatus string 必需

所用总价的状态:

  • NOT_CURRENTLY_KNOWN:用于功能检查。
  • ESTIMATED:总价可能会根据响应的细节进行调整,例如基于帐单邮寄地址收取的销售税。
  • FINAL:总价与显示给买家的金额相比无变化。
totalPrice string 可选

交易的总货币价值,可选择是否精确到小数点后两位。除非将 totalPriceStatus 设置为NOT_CURRENTLY_KNOWN,否则此字段为必填字段。

字符串的格式应遵循正则表达式格式:^[0-9]+(\.[0-9][0-9])?$

displayItems DisplayItem [] 可选 当前付款请求的所有可扣费用。
totalPriceLabel string 可选 显示项内总价的自定义标签。
checkoutOption string 可选

此属性会影响在 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",
    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"
    }
}

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 API 客户端方法返回的对象。

PaymentData

此为 Google 在付款人批准付款后返回的响应对象。

属性 类型 始终存在 说明
apiVersion number 主要 API 版本。响应中的值与 PaymentDataRequest 中提供的值一致。
apiVersionMinor number 次要 API 版本。响应中的值与 PaymentDataRequest 中提供的值一致。
paymentMethodData PaymentMethodData 所选付款方式的相关数据。
email string 电子邮件地址(如果在 PaymentDataRequest 中将 emailRequired 设为 true)。如果另一个请求将此属性设置为 true,则不会产生任何效果。
shippingAddress Address 送货地址(如果在 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 string 在 Google Pay 付款表格中选择的 PaymentMethod type
description string

面向用户的消息,用于说明此交易所使用的付款方式。

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 支付卡的详细信息。此值通常是所选付款帐号的后四位数。
cardNetwork string

所选款项的支付卡网络。返回的值与 CardParameters 中的 allowedCardNetworks 格式一致。

此卡网络值不应向购买者显示,但可在需要购买者支付卡的详细信息时使用。例如,客户服务人员可使用此值来确定购买者为其交易所使用的卡。若要向用户显示相关说明,请使用 PaymentMethodDatadescription 属性。

billingAddress Address 与所提供付款方式相关联的帐单邮寄地址(如果在 CardParameters 中将 billingAddressRequired 设为 true)。

示例

此示例显示了 Visa 网络上的卡。

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

PaymentMethodTokenizationData

此对象可提供付款方式的令牌化数据。

属性 类型 始终存在 说明
type string 要应用于所选付款方式的令牌化类型。此值与 PaymentMethodTokenizationSpecification 中设置的 type 一致。
token string

生成的付款方式令牌。

  • PAYMENT_GATEWAY:JSON 对象字符串,其中包含由您的网关签发的可扣款令牌。
  • DIRECTprotocolVersionsignaturesignedMessage,可用于解密。如需了解详情,请参阅付款方式令牌结构

示例

此示例显示了为 example 网关准备的令牌化响应。

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

Address

此对象可提供所请求邮政地址的相关信息。所有属性均为字符串。

如果将 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": ""
}