本参考文档介绍了可用于您网站的 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 |
字符串 | 否 | 邮箱(如果在
PaymentDataRequest 中将 emailRequired 设置为 true)。
如果另一个请求将该属性设置为 true,则没有任何影响。 |
shippingAddress |
地址 | 否 | 送货地址(如果在
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", "cardFundingSource": "CREDIT" }, "tokenizationData": { "type": "PAYMENT_GATEWAY", "token": "examplePaymentMethodToken" } } }
IntermediatePaymentData
当付款表格中的送货地址或运费选项发生更改时,Google Pay API onPaymentDataChanged() 输入会返回此对象。
| 属性 | 类型 | 必要性 | 说明 |
|---|---|---|---|
callbackTrigger |
字符串 | 可选 | 描述调用付款数据回调的原因。
|
offerData |
OfferData | 可选 | 用户提供的促销代码。 |
shippingAddress |
IntermediateAddress | 可选 | 付款表格中选择的地址。 |
shippingOptionData |
SelectionOptionData | 可选 | 付款表格中选择的运费选项。 |
paymentMethodData |
IntermediatePaymentMethodData | 可选 | 在付款页面中选择的支付方式数据。 |
示例
此示例展示了 Google Pay API 针对送货地址更改返回的中间载荷。
{ "callbackTrigger": "SHIPPING_ADDRESS", "offerData": { "redemptionCode": "exampleCode" }, "shippingAddress": { "administrativeArea": "NY", "countryCode": "US", "locality": "New York", "postalCode": "10011" }, "shippingOptionData": { "id": "shipping-001" } }
此示例展示了支付方式发生变化时返回的中间载荷。
{ "callbackTrigger": "PAYMENT_METHOD", "paymentMethodData": { "type": "CARD", "info": { "cardNetwork": "VISA", "cardFundingSource": "CREDIT", "billingAddress": { "administrativeArea": "NY", "countryCode": "US", "locality": "New York", "postalCode": "10011" } } } }
PaymentMethodData
此对象可提供所选支付方式的数据。
| 属性 | 类型 | 始终存在 | 说明 |
|---|---|---|---|
type |
字符串 | 是 |
PaymentMethod
在 Google Pay 付款表格中选择的 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 中的 此卡组织值不应向买家显示。当需要买家的卡详细信息时,可以使用此方法。例如,如果客户服务需要此值来识别买家用于交易的卡。如需提供用户可见的说明,请改用 PaymentMethodData 的 |
billingAddress |
地址 | 否 | 与所提供支付方式关联的账单邮寄地址(如果
CardParameters 中的 billingAddressRequired 设置为 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"] }
IntermediatePaymentMethodData
此对象包含有关所选支付方式的有限信息,供开发者回调使用。
| 属性 | 类型 | 必要性 | 说明 |
|---|---|---|---|
type |
字符串 | 必填 | 支付方式类型。此回调仅支持 CARD。 |
info |
IntermediateCardInfo | 可选 | 所选卡片的相关信息。仅当 type 为 CARD 时才会存在。 |
IntermediateCardInfo
此对象包含所选卡片的有限信息,用于开发者回调。
| 属性 | 类型 | 必要性 | 说明 |
|---|---|---|---|
billingAddress |
IntermediateAddress | 可选 | 与卡关联的账单邮寄地址。仅在账单邮寄地址设为必填时填充。 |
cardNetwork |
字符串 | 可选 | 所选支付卡的支付卡网络。返回的值与
CardParameters 中 此卡组织值不应向买家显示。 |
cardFundingSource |
字符串 | 可选 | 所选支付卡的资金来源。
|