跳到主要内容

Google Pay

功能说明
支付LOGO-使用规范
集成方案
  1. ✅ 托管结账
  2. ✅ 嵌入式
  3. ✅ 服务器对服务器
推荐使用国家全球
是否支持虚拟行业
是否支持订阅服务✅ 视行业而定
支持的SaaS支持所有已对接的SaaS清单
支持的开源建站
  1. ✅ Magento
  2. ✅ WordPress/Woocommerce
  3. ✅ OpenCart
  4. ✅ PrestaShop
  5. ✅ ZenCart

集成方式

嵌入式

查看Google Pay完整嵌入式集成方案。

服务器对服务器

要使用此集成模式,需要先成为Google Pay官方开发者。

注意

Google Pay 支持中国(CN)主体进行开发者注册,但实际商户入驻及线上支付能力可能受 Google Pay 区域准入政策限制。在生产环境中,部分收单、结算及商户审核能力仅对支持地区(如 HK / SG / EU / US 等主体)开放,建议根据业务需求选择符合 Google Pay 支持区域的主体进行商户配置。

  1. Google Pay开发者账号注册与配置
  1. 创建Merchant ID
  • 注册完成后会生成商户ID,在Google Pay Console → API access → Merchant Info 查看。
  1. 配置Google Pay API Key
  • 在Google Cloud Console创建项目;
  • 启用 Google Pay API for Web / Android;
  • 获取 API Key。
  1. 商户在用户完成支付授权后获取Google Pay Payment Token,查看Google Pay完整示例
信息
  • pay_accountNumber字段用于传递Google Pay Payment Token中的paymentData.paymentMethodData.tokenizationData.token对象。提交支付请求时,请将以下Payment Token中token节点JSON格式内容作为pay_accountNumber参数值进行传输。
{
"apiVersion": 2,
"apiVersionMinor": 0,
"paymentMethodData": {
"type": "CARD",
"description": "Visa •••• 1111",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1111"
},
"tokenizationData": {
"type": "DIRECT",
"token": "{\"signature\":\"MEQCIB...\",\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"...\\\",\\\"ephemeralPublicKey\\\":\\\"...\\\",\\\"tag\\\":\\\"...\\\"}\"}"
}
}
}
  1. 将Payment Token通过pay_accountNumber参数传值Oceanpayment调用服务器支付请求
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'TEST' });

const request = {
apiVersion: 2,
apiVersionMinor: 0,
allowedPaymentMethods: [{
type: 'CARD',
parameters: {
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
allowedCardNetworks: ['VISA', 'MASTERCARD'],
},
tokenizationSpecification: {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'oceanpayment',
'gatewayMerchantId': 'oceanpayment',
},
},
}],
merchantInfo: {
merchantName: 'OceanPayment',
merchantId: 'BCR2DN4TWW...',
},
transactionInfo: {
totalPriceStatus: 'FINAL',
totalPrice: '10.00',
currencyCode: 'USD',
},
};

paymentsClient.loadPaymentData(request).then(paymentData => {
const token = paymentData.paymentMethodData.tokenizationData.token;
//发送 token 到服务端进行交易处理
});