版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
注意若是个人的不能获取到手机号没有权限
该文档微信写的时候是个人的无法获取手机号后续未测试 介意勿看 祝你们加油
首先在uni-app建一个项目
本文档按照视频写的 (时间到27分钟可以自己继续往下看)
第二步自己注册一个微信小程序(我也忘记我怎么注册的贴一个网址哈哈)
然后创建一个文件夹因为他是登陆么所以单独拎出来(你们随意)
然后写复制代码
let global={	//获取值	userInfo:{	openid:null,	session_key:null	},	// 小程序的	appId:'',	appSecret:'',	/**	* 获取opinid和sessionkey	*/	getOpenId:function(){	var that=this;	//获取code	uni.login({	provider:'weixin',	success:function(res){	console.log('获取code:'+JSON.stringify(res))	let code=res.code;	that.getOpenIdByJs(code,data=>{	that.userInfo.openid=data.openid;	that.userInfo.session_key=data.session_key;	});	}	});	},	//	/**通过code换取对应的key(js版本 ,数据不安全)	* @param {Object} code	*/	getOpenIdByJs:function(code,callback){	// let url='https://api.weixin.qq.com/sns/jscode2session?appid='+this.appId+	// '&secret='+this.appSecret+'&js_code='+code+'&grant_type=authorization_code';	//	uni.request({	// url:url,	// data:{},	// 第二种写法	uni.request({	url:'https://api.weixin.qq.com/sns/jscode2session?appid',	data:{	appid:this.appId,	secret:this.appSecret,	js_code:code,	grant_type:'authorization_code'	},	success: (res) => {	console.log('获取opinid:'+JSON.stringify(res))	callback(res.data);	}	});	}	}; // 导出 module.exports=global;
main.js加入 注意自己换地
// 引入 获取小程序 import global from '@/common/global.js'; // 全局用$ Vue.prototype.$global=global; // 登录时自动获取 直接调用 Vue.prototype.$global.getOpenId();
appid 和appSecret的位置
https://mp.weixin.qq.com/
到这了用微信开发工具运行一下
得到这样的
继续往下走
在index.vue写
手机号一键登录
然后运行就看到了
悲伤那么大(因为我到这才发现我不可以获取,想了一下还是继续写下去吧)
然后下载一个微信解密包
微信手机号解密包
虽然我打开他是空页面但是他就莫名其妙的下载下来了。。
打开文件夹之后
打开node
第一个是domo可以自己看一眼或者直接往下走
把下边的那个复制到我们的项目中
调用
/**	* 获取解密并返回	* @param {Object} encryptedData	* @param {Object}	*/	getMobile(encryptedData,iv){	let data=this.decoeWxData(encryptedData,iv)	;	},	/**微信解密	* @param {Object} encryptedData 密文	* @param {Object} iv 向量	*/	decoeWxData:function(encryptedData,iv){	var WXBizDataCrypt = require('./WXBizDataCrypt.js')	var pc = new WXBizDataCrypt(this.appId, this.userInfo.session_key)	var data = pc.decryptData(encryptedData , iv)	console.log('解密后 data: ',JSON.stringify(data) ) return data;	}	};
index.vue
methods:{	getPhoneNumber(e){	let encryptedData=e.detail.encryptedData;	iv=e.detail.iv;	this.mobile= this.$global.getMobile(encryptedData,iv);	}	}