此参考文档介绍了可用于您网站的 Google Pay API 响应对象选项。 响应对象是指由 Google Pay API 客户端方法返回的对象。
IsReadyToPayResponse
此对象可提供有关网站访问者是否能够向请求支付信息的网站提供支付信息的相关信息。
| 属性 | 类型 | 始终存在 | 说明 |
|---|---|---|---|
result |
布尔值 | 是 | 当前访问者能够向请求支付信息的网站提供支付信息。 访问者的付款能力可能与其网络浏览器显示指定付款方式所需组件的能力有关。包括用户登录 Google 账号并提供支付方式时。 |
paymentMethodPresent |
布尔值 | 否 |
如果值为 仅当
IsReadyToPayRequest 中 如果 |
示例
以下示例展示了当前访问者何时能够向请求付款信息的网站提供付款信息。
{ "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
type 在 Google Pay 付款表格中选择。
|
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 中的 assuranceDetailsRequired 设置为 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 字段,也可以接收和处理响应对象。如需接收此对象,请在 Request 对象的
CardParameters 中添加 assuranceDetailsRequired: true。
PaymentMethodTokenizationData
此对象可提供支付方式的标记化数据。
| 属性 | 类型 | 始终存在 | 说明 |
|---|---|---|---|
type |
字符串 | 是 | 要应用于所选支付方式的令牌化类型。
此值与
PaymentMethodTokenizationSpecification 中设置的 type 相匹配。
|
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 |
字符串 | 必填 | 错误的 intent。 此 intent 必须是自流程开始以来已在
|
示例
此示例展示了要在付款表中呈现的错误 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 中的 phoneNumberRequired 设置为 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"] }