uniapp中写h5项目 微信重新获取code

发布时间:2024年01月16日

首先,当我们一进入h5项目的时候,就会调用onLunch这个函数,接着需要去走授权这个操作。授权的具体部分如下

  • 通过微信重定向获取code(5分钟过期,并且不可以重复使用)
  • 通过商务号(每个项目会定义好)获取:openAppId,channel(渠道)
  • 然后通过code、openAppId、渠道、授权方式 获取 openId、unionId
  • 将获取到的openId、unionId添加到请求头中
  • 在登录页面 通过用户名、密码等获取用户的sessionId
  • 将用户的sessionId绑定在请求头中
  • 通过seessionID获取用户的基本信息

获取通过微信重定向获取code代码

//获取地址后面的参数
function getPrams() {
	const url=window.location.search
	let item=Object.fromEntries(new URLSearchParams(url.replace('/','')))
	return item
}
function getInit(){
	const prams=getPrams()
	const code=prams.code;//code
	const mchNo = prams.mchNo;//商户号
	if (mchNo == null || mchNo == '') {
		mchNo = '商户号';//商户号自己定义
	}
	//通过商务号(每个项目会定义好)获取:openAppId,channel(渠道)
	let data=getMchNo()
	const openAppId=data.openAppId;//公众号ip
	const channel=data.openAppId;//渠道
	uni.setStorageSync('mchNo:', mchNo);//商户号
	uni.setStorageSync('channel',channel );//unionId

				
	//通过微信重定向获取code(5分钟过期,并且不可以重复使用)
	if(code == null || code == ''|| code == undefiend) {
		let url =
									`${window.location.protocol}//${window.location.host}${window.location.pathname}` +
									'?mchNo=' + mchNo
					const redirectUri = encodeURIComponent(url)
					window.location.href =
						`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${initRes.data.openAppId}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_userinfo&#wechat_redirect`
					return;
	}else {
	//有code需要向后台发送请求获取unionId:'',openId 假设获取的数据为resss
	let resss={
		unionId:'',
		openId:'',
	}
		uni.setStorageSync('openId',resss.openId );//openId
		uni.setStorageSync('unionId',resss.unionId );//unionId 
	}
	//如果上面的数据都拿到了 将进行自动登录 unionId openAppId;//公众号ip 调取接口 将获取sessionId
	if(sessionId){
		uni.setStorageSync('sessionId',sessionId);//存储用户的sessionId
		//在通过接口sessionId 获取userInfo的基本信息
	}else {
		//没有需要去登录页面
		uni.navigateTo({
			url: '/pages/login/login?mchNo=' + mchNo
		})
	}
	
	


	
}
//通过商务号去获取信息
function getMchNo(mchNo){
	//这个需要向后台发送请求
	xxx
	//将结果放回 res={openAppId:'',channel:'',}等数据
	return res
}
文章来源:https://blog.csdn.net/weixin_45041493/article/details/135622461
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。