响应对象

此参考文档介绍了可用于您网站的 Google Pay API 响应对象选项。 响应对象是指由 Google Pay API 客户端方法返回的对象。

IsReadyToPayResponse

此对象可提供有关网站访问者是否能够向请求支付信息的网站提供支付信息的相关信息。

属性 类型 始终存在 说明
result 布尔值 是 当前访问者能够向请求支付信息的网站提供支付信息。 访问者的付款能力可能与其网络浏览器显示指定付款方式所需组件的能力有关。包括用户登录 Google 账号并提供支付方式时。
paymentMethodPresent 布尔值 否

如果值为 true,则表示访问者拥有一种或多种付款方式,如所提供的 IsReadyToPayRequest 的 allowedPaymentMethods 属性中所指定。

仅当 IsReadyToPayRequest 中 existingPaymentMethodRequired 设置为 true 时才存在。

如果 PaymentsClient 使用 TEST 的 environment 属性进行初始化,则始终认为存在支付方式。

示例

以下示例展示了当前访问者何时能够向请求付款信息的网站提供付款信息。

{
  "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 字符串 可选

描述了调用支付数据回调的原因。

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
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 中的 allowedCardNetworks 格式一致。

此卡网络值不应向买家显示。当需要买家卡片的详细信息时使用。例如,如果客户支持人员需要此值来确定买家在交易中使用的卡。如需提供面向用户的说明,请改用 PaymentMethodData 的 description 属性。

billingAddress 地址 否 如果 中的 billingAddressRequired 在 CardParameters 中设置为 true,则为与所提供的支付方式关联的账单邮寄地址。
cardFundingSource 字符串 是

所选支付方式的卡片资金来源。

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

示例

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

{
  "cardNetwork": "VISA",
  "cardDetails": "1234",
  "cardFundingSource": "CREDIT",
  "assuranceDetails": {
    "cardHolderAuthenticated": false,
    "accountVerified": true
  }
}

AssuranceDetailsSpecifications

此对象可提供对返回的付款凭据执行了何种验证的相关信息,以便应用适当的付款方式风险检查。

名称 类型 说明
accountVerified 布尔值 如果为 true,则表示已对返回的付款凭据执行了 Cardholder 所有权验证。
cardHolderAuthenticated 布尔值

如果为 true,则表示已对返回的付款凭据执行了身份验证和识别 (ID&V)。

如果为 false,则可以执行与卡交易相同的基于风险的身份验证。这种基于风险的身份验证可以包括但不限于使用 3D Secure 协议的增强型身份验证(如果适用)。

即使您不使用 assuranceDetails 字段,也可以接收和处理响应对象。如需接收此对象,请在 Request 对象的 CardParameters 中添加 assuranceDetailsRequired: true。

PaymentMethodTokenizationData

此对象可提供支付方式的标记化数据。

属性 类型 始终存在 说明
type 字符串 是 要应用于所选支付方式的令牌化类型。 此值与 PaymentMethodTokenizationSpecification 中设置的 type 相匹配。
token 字符串 否

生成的支付方式令牌。

示例

以下是为 example 网关准备的令牌化响应示例。

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

PaymentAuthorizationResult

此对象可提供付款授权结果的相关信息。

属性 类型 必要性 说明
transactionState 字符串 必填 交易状态通过以下某种商家结果来解决:
  • SUCCESS
  • ERROR
error PaymentDataError 可选 当需要重试付款时,要在付款单中向用户呈现的错误。

示例

以下示例展示了付款处理完毕后返回的付款结果:

{
  "transactionState": "ERROR",
  "error": {
    "reason": "PAYMENT_DATA_INVALID",
    "message": "Cannot pay with payment credentials",
    "intent": "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

属性 类型 必要性 说明
reason 字符串 必填

预定义的错误原因列表:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message 字符串 必填 在对话框中向用户显示的错误消息。
intent 字符串 必填

错误的 intent。 此 intent 必须是自流程开始以来已在 PaymentDataRequest 中注册的 intent。

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

示例

此示例展示了要在付款表中呈现的错误 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"]
}