微信H5支付流程

6 篇文章 0 订阅
5 篇文章 0 订阅

微信H5支付流程

1.获取AppId

2.获取Code

3.获取OpenId

4.唤醒支付操作

一:获取Appid
拥有自己或者企业所属的公众号:设置与开发--》安全中心

在这里插入图片描述

二:获取code

需要访问微信提供的网址方法为:

// 获取code

    getBaseInfos(){
      let url_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+你的appid+"&redirect_uri="+当前页面url+"&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";
      window.location.href = url_code;//打开这个链接,你的url后面就会跟上code的参数
    }
注意: 当前页面需要转码

转码函数:

 urlencode (str) { 
      str = (str + '').toString(); 
      return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). 
      replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); 
 },

url_code打开之后需要手动获取url拼接参数;

三、获取openId

如果能正常获取code,需要把code传递给后端,后端返回openId 等一系列参数
可以参照微信官方文档

4.唤醒支付操作
//res.data.data都是后端传递的参数
WeixinJSBridge.invoke('getBrandWCPayRequest', {
						"appId": res.data.data.appid,
						//公众号名称,由商户传入     
						"timeStamp": res.data.data.timeStamp, 
						//时间戳,自1970年以来的秒数     
						"nonceStr": res.data.data.nonceStr,
						//随机串     
						"package": res.data.data.packageData,
						"signType": res.data.data.signType,
						//微信签名方式:     
						"paySign": res.data.data.paySign
						},
						function(res) {
							if (res.err_msg == "get_brand_wcpay_request:ok") {
							// 使用以上方式判断前端返回,微信团队郑重提示:
							//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

							} else {
								console.log(res)
							}
						});
5、提示

如果需要区分微信浏览器走下面的方法

isWeiXin() { //判断是否为微信浏览器
				let ua = window.navigator.userAgent.toLowerCase();
				if (ua.match(/MicroMessenger/i) == 'micromessenger') {
					return true;
				} else {
					return false;
				}
			},

走非微信浏览器则单独走一套支付方案

if(isWeiXin()){
	//微信浏览器支付流程
}else{
	//	非微信浏览器支付流程
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值