uniapp Google pay支付(已舍弃,因为不想用网关 paypal之类的)
·
一、安装手机/模拟器 运行环境
1、需要vpn 外网以及安装 go安装器 去下载play商店


二、安装完成之后,配置代码


这里的商户id需要在付款中心->设置->公开商家资料->商家id
Google pay 设置的网址
"googlePay" : {
"enabled" : true,
"merchantId" : "商户id",
"environment" : "test"
},
三、在订单页面进行配置
Uniapp 获取服务供应商网址 获取在App是否安装了该服务商的支付渠道
Google pay 付款数据加密网址 我需要用到 publicKey
// 使用 UniApp 的支付 API 集成 Google Pay
uni.getProvider({
service: 'payment',
success: (res) => {
// 获取所有支持的支付渠道
let providers = res.providers;
let googlePayProvider = providers.find(provider => provider.id === 'google-pay');
console.log('支付渠道', '111111111')
if (googlePayProvider) {
console.log('Google Pay 支付渠道可用');
let paymentMethodType = "CARD"; // 设置为卡支付
let cardPaymentMethodConfig = {
environment: 3, // 测试环境3,1为生产环境
protocolVersion: 'ECv2', // 使用 Google Pay API 协议版本 2
paymentMethodType: 'CARD', // 支付方式,确保是 'CARD'
currencyCode: "USD", // 货币代码
countryCode: "US", // 国家代码3价格,确保符合金额格式 ^[0-9]+(\.[0-9][0-9])?$
totalPriceLabel: this.coinCount.toFixed(2), // 可选,显示金额标签
totalPrice: this.coinCount.toFixed(2), // 可选,显示金额标签
checkoutOption: "DEFAULT", // 可选,默认选项
merchantName: "", // 商户名称
allowedAuthMethods: ["PAN_ONLY", "CRYPTOGRAM_3DS"], //必填
allowedCardNetworks: ["AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"], // 允许的卡网络
//PAYMENT_GATEWAY 是第三方支付 DIRECT是直接通过google付款
tokenizationSpecificationType: "DIRECT", //必填 PAYMENT_GATEWAY、DIRECT
publicKey: "", //这是公钥
totalPriceStatus: "FINAL", //必填
tokenizationSpecification: {
type: 'DIRECT',
parameters: {
gateway: 'google', // 您的支付网关
gatewayMerchantId: '商户id' // 商户ID
}
},
};
// 发起支付请求
uni.requestPayment({
provider: googlePayProvider.id,
orderInfo: cardPaymentMethodConfig, // 订单信息
success: (paymentResult) => {
console.log("支付成功", paymentResult);
},
fail: (error) => {
console.log("支付失败", error);
}
});
} else {
console.log('Google Pay 支付渠道不可用');
}
},
fail: (err) => {
console.log("支付渠道获取失败", err);
}
});
注意:
1、go安装提示网络有问题
那大概是vpn链接问题 多换几个google支持的国家 美国之类的
2、uni.getProvider 支付通道没有google-pay
建议检查以下方面
(1) 是否装上google play
(2) 是否登录google 账号
(3) 账号是否录入付款方式(必须有,不然检测不到渠道)
3、google 支付能弹出 但是点击付款会报错

{ “errMsg”: “requestPayment:fail Status{statusCode=Error validating publicKey: First byte of the public key must be 0x04 (which indicates uncompressed point format)., resolution=null}”,
“errCode”: -100,
“code”: -100
}
这是公钥有问题 建议按着官网去生成(我是后端帮我生成的我 前端的我实在出不来)
更多推荐



所有评论(0)