一、安装手机/模拟器 运行环境

1、需要vpn 外网以及安装 go安装器 去下载play商店
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

这里的商户id需要在付款中心->设置->公开商家资料->商家id
Google pay 设置的网址

 "googlePay" : {
                "enabled" : true,
                "merchantId" : "商户id",
                "environment" : "test"
            },

三、在订单页面进行配置

Uniapp 获取服务供应商网址 获取在App是否安装了该服务商的支付渠道

Google pay 付款数据加密网址 我需要用到 publicKey

Uniapp 申请开通Google支付网址 代码配置

// 使用 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
}
这是公钥有问题 建议按着官网去生成(我是后端帮我生成的我 前端的我实在出不来)

更多推荐