JSON 对象参考

本参考介绍了可在您的网站中使用的 Google Pay API 对象选项。本参考中涉及两种类型的对象:

请求对象

IsReadyToPayRequest

此对象指定哪些付款方式受支持。

属性 类型 必要性 说明
apiVersion 数值 必需 主要 API 版本。对于此规范,该值为 2
apiVersionMinor 数值 必需 次要 API 版本。对于此规范,该值为 0
allowedPaymentMethods PaymentMethod[] 必需

指定是否支持 Google Pay API 所支持的一种或多种付款方式。

不需要 tokenizationSpecification 即可确定查看者是否已准备好付款。为每个受支持的 PaymentMethod 提供所有必需的 parameters 属性。

existingPaymentMethodRequired 布尔值 可选

如果设为 true,那么在当前查看者准备好使用 allowedPaymentMethods 中指定的一种或多种付款方式付款时,isReadyToPay() 类方法将返回 。

示例

此示例显示了如何为所有受支持的支付卡网络的支付卡和 Android 设备令牌提供支持。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      }
    }
  ]
}

PaymentDataRequest

使用此对象可配置您的应用对 Google Pay API 的支持。

属性 类型 必要性 说明
apiVersion 数值 必需 主要 API 版本。对于此规范,该值为 2
apiVersionMinor 数值 必需 次要 API 版本。对于此规范,该值为 0
merchantInfo MerchantInfo 必需 请求付款数据的商家的相关信息。
allowedPaymentMethods PaymentMethod[] 必需 指定是否支持 Google Pay API 所支持的一种或多种付款方式。
transactionInfo TransactionInfo 必需 有关根据用户是否同意交易来为交易授权的详细信息。包含总价和价格状态。
emailRequired 布尔值 可选 设为 true 可请求电子邮件地址。
shippingAddressRequired 布尔值 可选 设为 true 可请求完整的送货地址。
shippingAddressParameters ShippingAddressParameters 可选 如果 shippingAddressParameters 设为 true,请指定送货地址限制。

示例

以下示例显示了如何为所有受支持的支付卡网络的支付卡和 Android 设备令牌提供支持。系统会将支付卡令牌化,以用于示例网关。该请求针对付款方式发出,以收取 12.34 美元的最终费用。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "merchantInfo": {
    "merchantName": "Example Merchant"
  },
  "allowedPaymentMethods": [
    {
      "type": "CARD",
      "parameters": {
        "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
        "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
      },
      "tokenizationSpecification": {
        "type": "PAYMENT_GATEWAY",
        "parameters": {
          "gateway": "example",
          "gatewayMerchantId": "exampleGatewayMerchantId"
        }
      }
    }
  ],
  "transactionInfo": {
    "totalPriceStatus": "FINAL",
    "totalPrice": "12.34",
    "currencyCode": "USD"
  }
}

MerchantInfo

此对象可提供请求付款数据的商家的相关信息。

属性 类型 必要性 说明
merchantId 字符串 必需 Google 商家 ID,在您的网站取得 Google 批准后签发。如果使用 PRODUCTIONenvironment 属性初始化 PaymentsClient,则必需此属性。如需详细了解批准过程以及如何获取 Google 商家 ID,请参阅集成核对清单
merchantName 字符串 可选 采用 UTF-8 编码的商家名称。商家名称会显示在付款表格中。若处于 TEST 环境,或者无法识别商家,系统会在付款表格中显示“向未经验证的商家付款”消息。
merchantOrigin 字符串 可选

以其商家名义发出请求的提供商的完全限定域名。如果网站提供 Google Pay 付款按钮并以其他网站名义请求付款信息(通常是通过托管结帐集成),则为必需属性。

示例

以下示例显示了包含 merchantNamemerchantInfo 对象。

merchantInfo: {
    merchantName: "Example Merchant",
}

PaymentMethod

此对象可指定 Google Pay API 支持且您的应用

属性 类型 必要性 说明
type 字符串 必需

所支持付款方式的短标识符。目前仅支持 CARDPAYPAL 条目。

parameters 对象 必需 配置所提供的付款方式类型时所需的参数。如需详细了解 CARD 付款方式的预期值,请参阅 CardParameters。如需详细了解 PAYPAL 付款方式的预期值,请参阅 PAYPALParameters
tokenizationSpecification PaymentMethodTokenizationSpecification 可选

配置要接收付款信息的帐号或解密提供商。

如为 CARD 付款方式,则为必需属性。

如果此属性包含在 IsReadyToPayRequest 内,则不会产生任何影响。

CARD

以下示例显示了如何为所有受支持的支付卡网络的支付卡和 Android 设备令牌提供支持。此示例通过示例网关显示了令牌化过程。

{
  "type": "CARD",
  "parameters": {
    "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
    "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
  },
  "tokenizationSpecification": {
    "type": "PAYMENT_GATEWAY",
    "parameters": {
      "gateway": "example",
      "gatewayMerchantId": "exampleGatewayMerchantId"
    }
  }
}
PAYPAL

以下示例显示了如何支持 PAYPAL 付款方式。

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

TokenizationSpecification

此对象可让您配置要接收可扣款付款信息的帐号。

属性 类型 必要性 说明
type 字符串 必需

对于给定的 PaymentMethod 支持付款方式令牌化类型。对于 CARD 付款方式,请使用 PAYMENT_GATEWAYDIRECT。对于 PAYPALPaymentMethod,请使用不带任何参数的 DIRECT

parameters 对象 必需 所选付款方式令牌化类型所特有的参数。

网关

type 设置为 PAYMENT_GATEWAY,可从 Google Pay API 支持的支付网关中检索付款和客户信息。请按照网关的说明指定 parameters 属性。常见的属性包括由 Google 签发的网关标识符以及由您的网关提供的网关帐号 ID。

Example
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "example",
    "gatewayMerchantId": "exampleGatewayMerchantId"
  }
}
ACI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "aciworldwide",
    "gatewayMerchantId": "YOUR_ENTITY_ID"
  }
}
Adyen
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "adyen",
    "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"
  }
}
Alfa-Bank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "alfabank",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Blue Media
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluemedia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
BlueSnap
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "bluesnap",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Braintree
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "braintree",
    "braintree:apiVersion": "v1",
    "braintree:sdkVersion": braintree.client.VERSION,
    "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID",
    "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"
  }
}
Braspag
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cielo",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CardConnect
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cardconnect",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Chase Paymentech
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "chase",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ACCOUNT_NUMBER"
  }
}
Checkout.com
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "checkoutltd",
    "gatewayMerchantId": "YOUR_PUBLIC_KEY"
  }
}
CloudPayments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cloudpayments",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
CyberSource
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "cybersource",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Datatrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "datatrans",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
EBANX
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "ebanx",
    "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"
  }
}
First Data
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "firstdata",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Global Payments
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "globalpayments",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
GoPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gopay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
GMO Payment Gateway
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "gmopg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
HiTrust
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "hitrustpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
IMSolutions
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "imsolutions",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
iQmetrix
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "iqmetrixpaymentservicesgateway",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Lyra
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "lyra",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
MPGS
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mpgs",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Money.Mail.Ru
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "moneymailru",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Mundipagg
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "mundipagg",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Newebpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "newebpay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Nexi
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "nexi",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
NMI
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "creditcall",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Paysafe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "paysafe",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Payture
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payture",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
PayU
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "payu",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Przelewy24
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "przelewy24",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
RBKmoney
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "rbkmoney",
    "gatewayMerchantId": "YOUR_MERCHANT_ID"
  }
}
Redsys
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "redsys",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sberbank
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sberbank",
    "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"
  }
}
Softbank Payment Service
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sbps",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Sony Payment Services
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "sonypaymentservices",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Square
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "square",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Stripe
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "stripe",
    "stripe:version": "2018-10-31",
    "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"
  }
}
TapPay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tappay",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Tinkoff
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "tinkoff",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Uniteller
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "uniteller",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vantiv
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vantiv",
    "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID",
    "vantiv:merchantOrderId": "YOUR_ORDER_ID",
    "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID",
    "vantiv:merchantReportGroup": "*web"
  }
}
Veritrans
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "veritrans",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Vindicia
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "vindicia",
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"
  }
}
Worldpay
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "worldpay",
    "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"
  }
}
Yandex
"tokenizationSpecification": {
  "type": "PAYMENT_GATEWAY",
  "parameters": {
    "gateway": "yandexcheckout",
    "gatewayMerchantId": "YOUR_SHOP_ID"
  }
}

Direct

type 设置为 DIRECT 可直接在您的服务器上解密响应。此配置需要满足 Google 额外的数据安全要求,并会增加符合 PCI DSS 规定的复杂度。

属性 类型 必要性 说明
protocolVersion 字符串 必需 在响应中显示的加密/签名协议版本。当前 ECv2 受支持。如需详细了解可用的加密和签名协议,请参阅付款数据加密
publicKey 字符串 必需 采用 Base64 编码的椭圆曲线公钥。如需了解详情,请参阅我们的商家加密文档中的加密公钥格式部分。
示例

在以下示例中,publicKey 值采用了缩写形式,以方便阅读。

"tokenizationSpecification": {
  "type": "DIRECT",
  "parameters": {
    "protocolVersion": "ECv2",
    "publicKey": "BOdoXP1aiNp.....kh3JUhiSZKHYF2Y="
  }
}

CardParameters

借助此对象,您可以定义所接受的支付卡类型。Google 会根据您配置的选项过滤付款人的可用支付卡。

属性 类型 必要性 说明
allowedAuthMethods 字符串[] 必需

支持用于对卡交易进行身份验证的字段。

  • PAN_ONLY:此身份验证方法与用户的 Google 帐号中保存的支付卡相关联。返回的付款数据包含个人帐号 (PAN) 以及到期月份和到期年份。
  • CRYPTOGRAM_3DS:此身份验证方法与存储为 Android 设备令牌的卡相关联。返回的付款数据包括在设备上生成的 3D 安全 (3DS) 密文。
allowedCardNetworks 字符串 必需

您和 Google Pay API 都支持的一个或多个支付卡网络。

  • AMEX
  • DISCOVER
  • INTERAC
  • JCB
  • MASTERCARD
  • VISA
allowPrepaidCards 布尔值 可选 如果您不支持预付卡,请将此属性设为 false。默认情况:指定的支付卡网络支持预付卡类。
billingAddressRequired 布尔值 可选 如果您要求提供帐单邮寄地址,请将此属性设为 true。请仅在必须提供帐单邮寄地址才能处理交易的情况下,请求帐单邮寄地址。额外的数据请求会使结算流程不能顺畅进行,并可能会导致转化率较低。
billingAddressParameters BillingAddressParameters 可选 如果 billingAddressRequired 设为 true,则返回预期字段。

CARD 示例

以下示例显示了如何支持所有可用的支付卡网络和卡身份验证方法:

{
  "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
  "allowedCardNetworks": ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
}

BillingAddressParameters

此对象可让您设置要为所请求的帐单邮寄地址返回的其他字段。

属性 类型 必要性 说明
format 字符串 可选

完成交易所需的帐单邮寄地址格式。

  • MIN:名字、国家/地区代码和邮政编码(默认)。
  • FULL:名字、街道地址、市行政区、区域、国家/地区代码和邮政编码。
phoneNumberRequired 布尔值 可选 如果必须提供电话号码才能处理交易,请将此属性设为 true

示例

以下示例显示了如何请求最基本的帐单邮寄地址,即属性当前的默认值。

{
  "format": "MIN"
}

ShippingAddressParameters

此对象可用于设置送货限制。

属性 类型 必要性 说明
allowedCountryCodes 字符串[] 可选 允许送货的国家/地区的 ISO 3166-1 alpha-2 国家/地区代码值。如果未指定此对象,就意味着支持所有送货国家/地区。
phoneNumberRequired 布尔值 可选 如果所提供的送货地址需要填写电话号码,请将此属性设为 true

示例

以下示例是针对美国送货地址的请求。

{
  "allowedCountryCodes": ["US"]
}

TransactionInfo

此对象描述了一个用于确定付款人是否能付款的交易。它用于显示付款授权对话框。下表详细介绍了对象的属性。

属性 类型 必要性 说明
currencyCode 字符串 必需 ISO 4217 字母货币代码。
countryCode 字符串 可选(必须为欧洲经济区 (EEA) 的国家/地区提供) ISO 3166-1 alpha-2 国家/地区代码,用于表示处理交易的位置。必须为欧洲经济区 (EEA) 的国家/地区的商家提供。
totalPriceStatus 字符串 必需

所用总价的状态:

  • NOT_CURRENTLY_KNOWN:用于付款能力检查。如果交易是在 EEA 国家/地区处理的,请不要使用此属性。
  • ESTIMATED:总价可能会根据响应详细信息(例如根据帐单邮寄地址收取的销售税)进行调整。
  • FINAL:总价与显示给买家的金额相比无变化。
totalPrice 字符串 可选

交易的总货币价值,可选择是否精确到小数点后两位。除非将 totalPriceStatus 设为 NOT_CURRENTLY_KNOWN,否则此字段是必填字段。

字符串的格式应遵循正则表达式格式:^[0-9]+(\.[0-9][0-9])?$

displayItems DisplayItem[] 可选 当前付款请求的所有可扣费用。如果您使用授权付款动态价格更新,则仅在付款表格中填充此内容。如果您要实现对“授权付款”或“动态价格更新”的支持,则必须使用此字段。
totalPriceLabel 字符串 可选 显示项范围内总价的自定义标签。
checkoutOption 字符串 可选

此属性会影响在 Google Pay 付款表格中显示的提交按钮文本。

  • DEFAULT:对于给定的 totalPriceStatus,适用标准文本(默认值)。
  • COMPLETE_IMMEDIATE_PURCHASE:在付款人确认其选择后,系统会立即通过所选付款方式扣费。只有当 totalPriceStatus 设为 FINAL 时,才可使用此选项。

最终价格示例

以下示例显示了以美元表示的最终价格。

{
  displayItems: [
    {
      label: "Subtotal",
      type: "SUBTOTAL",
      price: "11.00",
    },
    {
      label: "Tax",
      type: "TAX",
      price: "1.00",
    }
  ],
    currencyCode: "USD",
    countryCode: "US",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total",
    checkoutOption: "DEFAULT",
    newShippingOptions: {
 	    defaultSelectedOptionId: "shipping-001",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "Free: Standard shipping",
          "description": "Free Shipping delivered in 5 business days."
        }
      ]
    },
    error: {
   	  reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
      message: "Cannot ship to the selected address",
      intent: "SHIPPING_ADDRESS"
    }
}

PayPalParameters

此对象可让您指定 PayPal 参数。

属性 类型 必要性 说明
purchase_context PurchaseContext 必需 使用订单相关信息作为说明。

PayPal 示例

以下示例显示了如何支持 PayPal 付款方式:

{
  "purchase_context": {
    "purchase_units": [
      {
        "payee": {
          "merchant_id": "PAYPAL_ACCOUNT_ID"
        }
      }
    ]
  }
}

PurchaseContext

此对象可提供与订单有关的信息。

属性 类型 必要性 说明
purchase_units PurchaseUnit[] 必需 描述客户与商家之间的合约。

PurchaseUnit

此对象描述了 PayPal 客户与 PayPal 商家之间的合约。如需了解详情,请参阅 PayPal Order API 文档中的 purchase_unit

属性 类型 必要性 说明
payee Payee 必需 此交易的资金收据。

Payee

此对象可提供接收资金的商家的相关信息。如需了解详情,请参阅 PayPal Order API 参考文档中的 payee 参数。

对于其他支持的参数,请参阅可选参数

PayPal 示例

以下示例显示了如何支持 PayPal 付款方式。

{
  “type”: “PAYPAL”,
  parameters: {
  	"purchase_context": {
    	     "purchase_units": [{
        		"payee": {
          		      "merchant_id": "PAYPAL_ACCOUNT_ID"
                      	   }
       	       } ]
  	  }
    },
   “tokenizationSpecification”: {
	type: “DIRECT”  }
}

响应对象

响应对象是由 Google Pay API 客户端方法返回的对象。

PaymentData

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

属性 类型 是否始终存在 说明
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"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

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 字符串 支付卡的详细信息。此值通常是所选付款帐号的后四位数。
cardNetwork 字符串

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

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

billingAddress 地址 与所提供付款方式相关联的帐单邮寄地址(如果在 CardParameters 中将 billingAddressRequired 设为 true)。

示例

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

{
  "cardNetwork": "VISA",
  "cardDetails": "1234"
}

PaymentMethodTokenizationData

此对象可提供付款方式的令牌化数据。

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

生成的付款方式令牌。

  • PAYMENT_GATEWAY:JSON 对象字符串,其中包含由您的网关签发的可扣款令牌。
  • DIRECTprotocolVersionsignaturesignedMessage,用于解密。如需了解详情,请参阅付款方式令牌结构

示例

此示例显示了为 example 网关准备的令牌化响应。

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

地址

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

如果 billingAddressFormat 设为 MIN,系统可能会返回 MIN 地址格式。送货地址会以 FULL 地址格式返回。MIN 格式的响应中的所有属性都存在于 FULL 格式的响应中。

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

示例

此示例显示了一个包含多行街道地址数据的美国地址。

{
  "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": ""
}