跳到主要内容

Google Pay

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

集成方式

Oceanpayment支持以下两种Google Pay集成模式:

集成模式适用场景
嵌入式(Embedded)商户无需申请 Google Pay开发者资质,由 Oceanpayment完成 Merchant Validation和支付处理
服务器对服务器(Server-to-Server)商户自行申请Google Pay开发者账号并获取Payment Token后,通过Oceanpayment服务端接口完成支付

嵌入式

1. 集成

结账页面将在可能的情况下显示Google Pay作为付款选项。

使用嵌入式集成方案完成支付处理。

服务器对服务器

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

注意

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

1. 注册Google Developer

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.cardNetworkcard_type
VISAVISA
MASTERCARDMASTERCARD
MAESTROMAESTRO
JCBJCB
ELOELO
DISCOVERDISCOVER
CHINAUNIONPAYCHINAUNIONPAY
CARTESBANCAIRESCARTESBANCAIRES
AMEXAMEX
-d 'card_type=VISA' \

7. 集成

将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 到服务端进行交易处理
});