响应对象

本参考内容介绍了可在您的网站中使用的 Google Pay API 响应对象选项。响应对象是由 Google Pay API 客户端方法返回的对象。

IsReadyToPayResponse

此对象提供了有关网站访问者能否向提出请求的网站提供付款信息的信息。

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

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

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

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

示例

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

{
  "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 字符串 是 在 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 字符串 是 支付卡的详细信息。此值通常是所选付款账号的后四位数。
assuranceDetails AssuranceDetailsSpecifications 是 如果 CardParameters 中的 assuranceDetailsRequired 设置为 true,此对象可提供对返回的支付数据执行验证的相关信息。
cardNetwork 字符串 是

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

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

billingAddress 地址 否 与所提供支付方式相关联的账单邮寄地址(如果在 CardParameters 中将 billingAddressRequired 设为 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 字符串 否

生成的支付方式支付标记。

  • PAYMENT_GATEWAY: JSON 对象字符串,其中包含由您的网关签发的待付款令牌。
  • DIRECT: protocolVersion、signature 和 signedMessage,用于解密。如需了解详情,请参阅 支付方式令牌结构 。

示例

此示例显示了为 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。 从流程一开始,此属性就必须已在 PaymentDataRequest 中注册。

  • 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 如果 phoneNumberRequired 在 PaymentDataRequest 中设为 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 字符串 必填 基于国家/地区的已遮盖邮政编码。对于加拿大和英国,此编码仅包含前三个字符。对于美国,此编码包含前 5 位数字。
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"]
}