Google Pay
| 功能 | 说明 |
|---|---|
| 支付LOGO-使用规范 | |
| 集成方案 |
|
| 推荐使用国家 | 全球 |
| 是否支持虚拟行业 | ✅ |
| 是否支持订阅服务 | ✅ 视行业而定 |
| 支持的SaaS | 支持所有已对接的SaaS清单 |
| 支持的开源建站 |
|
集成方式
嵌入式
查看Google Pay完整嵌入式集成方案。
服务器对服务器
要使用此集成模式,需要先成为Google Pay官方开发者。
注意
Google Pay 支持中国(CN)主体进行开发者注册,但实际商户入驻及线上支付能力可能受 Google Pay 区域准入政策限制。在生产环境中,部分收单、结算及商户审核能力仅对支持地区(如 HK / SG / EU / US 等主体)开放,建议根据业务需求选择符合 Google Pay 支持区域的主体进行商户配置。
- Google Pay开发者账号注册与配置
- 访问https://pay.google.com/about/business
- 使用公司 Gmail / Google Workspace注册;
- 选择企业账号。
- 创建Merchant ID
- 注册完成后会生成商户ID,在Google Pay Console → API access → Merchant Info 查看。
- 配置Google Pay API Key
- 在Google Cloud Console创建项目;
- 启用 Google Pay API for Web / Android;
- 获取 API Key。
- 商户在用户完成支付授权后获取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\\\":\\\"...\\\"}\"}"
}
}
}
- 将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 到服务端进行交易处理
});