开发微信公众号支付代码

一。
url传入当前页面url地址或者微信公众平台配置的域名根目录,使用window.location.href方法获取,
二。
下面代码请结合微信公众号开发文档
微信公众号开发文档
function test(url,) {
uni.request({
url: cfg.originUrl + ‘/wx/mp/js_sig.do’, //这里请求后端获取签名验证什么的
data: {
route: url //url传入当前页面url地址或者微信公众平台配置的域名根目录,使用window.location.href方法获取,
},
method: ‘GET’,
success: (res) => {
// alert(JSON.stringify(res.data));
jweixin.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.appId, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名
jsApiList: [‘chooseWXPay’] // 必填,需要使用的JS接口列表
});

		jweixin.ready(function() {
			// console.log('我要支付啦');
			// config信息验证后会执行ready方法
			uni.request({
				url: cfg.originUrl + "/wx/pay/init.do",
				method: 'POST',
				header: {
					'Content-type': "application/x-www-form-urlencoded",
				},
				data: JSON.stringify(data),
				success: function(res) {
					// alert(JSON.stringify(res.data));
					if (!res.data.ok) {
						alert('下单失败');
					} else {
						// alert("下单成功");
						uni.setStorageSync('order', res);
					}
					jweixin.chooseWXPay({
						timestamp: res.data.payParams.timeStamp, // 支付签名时间戳
						nonceStr: res.data.payParams.nonceStr, // 支付签名随机串
						package: res.data.payParams.package, // 接口返回的prepay_id参数
						signType: res.data.payParams.signType, // 签名方式
						paySign: res.data.payParams.paySign, // 支付签名
						success: function(e) {
							alert("支付成功");
							// alert(JSON.stringify(e)); // 支付成功后的回调函数
							uni.navigateTo({
								url: '/pages/indent/indent?id=' + 1
							})
						}
					});
				}
			})
		});
		jweixin.error(function(res) {
			// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
			console.log("验证失败!")
		});
	}
})

}

猜你喜欢

转载自blog.csdn.net/WQzeus/article/details/109908783