响应对象

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

IsReadyToPayResponse

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

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

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

仅当 existingPaymentMethodRequiredIsReadyToPayRequest 中设为 true 时才存在。

如果使用 TESTenvironment 属性初始化 PaymentsClient,则系统始终认为存在某种付款方式。

示例

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

{
  "result": true
}

PaymentData

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

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
属性 类型 是否始终存在 说明
apiVersion 数值 主要 API 版本。响应中的值与 PaymentDataRequest 中提供的值一致。
apiVersionMinor 数值 次要 API 版本。响应中的值与 PaymentDataRequest 中提供的值一致。
paymentMethodData PaymentMethodData 所选付款方式的相关数据。
email 字符串 如果 emailRequiredPaymentDataRequest 中设为 true,则此属性的值为电子邮件地址。 如果另一个请求将此属性设置为 true,则不会产生任何影响。
shippingAddress 地址 如果 shippingAddressRequiredPaymentDataRequest 中设为 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 格式一致。

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

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 对象字符串,其中包含由您的网关签发的可扣款令牌。
  • DIRECTprotocolVersionsignaturesignedMessage,用于解密。如需了解详情,请参阅 付款方式令牌结构

示例

此示例显示了为 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 字符串 必需

错误的用意。从流程一开始,此属性就必须已在 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"
  }
}

地址

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

地址可以采用 MINFULLFULL-ISO3166 格式返回。下表列出了每种格式的属性。

属性 地址格式 说明
name MINFULLFULL-ISO3166 收件人的全名。
postalCode MINFULLFULL-ISO3166 邮政编码。
countryCode MINFULLFULL-ISO3166 ISO 3166-1 alpha-2 国家/地区代码。
phoneNumber MINFULLFULL-ISO3166 如果 phoneNumberRequiredPaymentDataRequest 中设为 true,则此属性的值为电话号码。
address1 FULLFULL-ISO3166 地址的第一行。
address2 FULLFULL-ISO3166 地址的第二行。
address3 FULLFULL-ISO3166 地址的第三行。
locality FULLFULL-ISO3166 城市、城镇、社区或郊区。
administrativeArea FULLFULL-ISO3166 国家/地区行政区,例如州或省。
sortingCode FULLFULL-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"]
}