Google Pay
| 功能 | 说明 |
|---|---|
| 支付LOGO-使用规范 | |
| 集成方案 |
|
| 推荐使用国家 | 全球 |
| 是否支持虚拟行业 | ✅ |
| 是否支持订阅服务 | ✅ 视行业而定 |
| 支持的SaaS | 支持所有已对接的SaaS清单 |
| 支持的开源建站 |
|
集成方式
Oceanpayment支持以下两种Google Pay集成模式:
| 集成模式 | 适用场景 |
|---|---|
| 嵌入式(Embedded) | 商户无需申请 Google Pay开发者资质,由 Oceanpayment完成 Merchant Validation和支付处理 |
| 服务器对服务器(Server-to-Server) | 商户自行申请Google Pay开发者账号并获取Payment Token后,通过Oceanpayment服务端接口完成支付 |
嵌入式
1. 集成
结账页面将在可能的情况下显示Google Pay作为付款选项。
- 发起支付
- 创建QuickPay
使用嵌入式集成方案完成支付处理。
使用嵌入式集成方案完成订阅快捷支付场景的QuickPay创建。
服务器对服务器
要使用此集成模式,需要先成为Google Pay官方开发者。
Google Pay支持中国(CN)主体进行开发者注册,但实际商户入驻及线上支付能力可能受Google Pay区域准入政策限制。在生产环境中,部分收单、结算及商户审核能力仅对支持地区(如 HK / SG / EU / US 等主体)开放,建议根据业务需求选择符合Google Pay支持区域的主体进行商户配置。
1. 注册Google Developer
- 访问https://pay.google.com/about/business
- 使用公司 Gmail / Google Workspace注册;
- 选择企业账号。
2. 创建Merchant ID
- 注册完成后会生成商户ID,在Google Pay Console → API access → Merchant Info 查看。
3. 配置Google Pay API Key
- 在Google Cloud Console创建项目;
- 启用 Google Pay API for Web / Android;
- 获取 API Key。
4. 配置Merchant Domain白名单
- 登录Google Developer → Google Pay API → Web integration;
- 提交域名白名单以及支付流程截图。
5. 获取Payment Token
商户在用户完成支付授权后获取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\\\":\\\"...\\\"}\"}"
}
}
}
6. card_type传参说明
发起Oceanpayment支付请求时,card_type用于传递Google Pay Payment Token中的paymentMethod.network,商户需将paymentMethodData.info.cardNetwork返回值转换为Oceanpayment card_type支持的枚举值后进行传输。
paymentMethodData.info.cardNetwork | card_type |
|---|---|
| VISA | VISA |
| MASTERCARD | MASTERCARD |
| MAESTRO | MAESTRO |
| JCB | JCB |
| ELO | ELO |
| DISCOVER | DISCOVER |
| CHINAUNIONPAY | CHINAUNIONPAY |
| CARTESBANCAIRES | CARTESBANCAIRES |
| AMEX | AMEX |
- Request
-d 'card_type=VISA' \
7. 集成
- 发起支付
- 创建QuickPay
将Payment Token通过pay_accountNumber参数传值Oceanpayment调用服务器支付请求。
merchantInfo可使用Oceanpayment的MID进行传值。如需使用该配置,请联系Oceanpayment技术支持获取。此时,第4步中的配置 Merchant Domain白名单将由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 到服务端进行交易处理
});
将Payment Token通过pay_accountNumber参数传递至Oceanpayment,完成订阅快捷支付场景的QuickPay直连创建。