微信小程序获取手机号和头像

手机号

js文件
https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip
问答地址:
https://developers.weixin.qq.com/community/develop/doc/000800fa6ec1a025eef8fefda5bc00?highLine=WXBizDataCrypt
vue文件中:

import WXBizDataCrypt from '@/pages/common/WXBizDataCrypt.js'
	created() {
			
			this.getPhoneNo();




		},
	getPhoneNo() {
				console.log("startgetphoneno");
				uni.login({
					provider: 'weixin',
					success: res => {
						this.code = res.code
						console.log("this.code:", this.code);
						// console.log(this.code);
						let tmp = {
							"code": this.code
						}
						this.$http.post('/index/getPhoneNo',
								tmp
							)//后端接口见下面大片的注释------很多人卡在这里看不懂了--------
							.then(res => {

								if (res.data.success == true) {
									//请输入业务逻辑
									console.log(res.data.result);
									console.log("获得秘钥");
									this.openId = res.data.result.openid //openid 用户唯一标识
									// 		this.unionid = cts.data.unionid //unionid 开放平台唯一标识   当公众号和小程序同时登录过才会有
									this.session_key = res.data.result.session_key //session_key  会话密钥  
									// 		console.log(data);

									// 		console.log(cts)
									// 		console.log(this.openId, this.session_key)


								} else {
									uni.showToast({
										icon: 'none',
										title: '您填写的参数有误,请查证后再提交!',
										duration: 2000
									})
								}
							}).catch(err => {
								uni.showToast({
									icon: 'none',
									title: '发起失败,请联系管理员!',
									duration: 2000
								})
								console.log(err);
							})




//-----------------测试环境中可以由微信小程序开发程序发起请求,在这里实现后端/index/getPhoneNo的功能
						// let data = {
						// 	appid: 'xxxxxxxxxxx', //你的小程序的APPID  
						// 	secret: 'xxxxxxxxxxxxx'// 你的小程序的APPsecret  
						// 	js_code: this.code, //wx.login 登录成功后的code  
						// 	grant_type: 'authorization_code',//固定值
						// };
						// console.log(data);


						// uni.request({
						// 	url: 'https://api.weixin.qq.com/sns/jscode2session',
						// 	method: 'GET',
						// 	data: {
						// 		appid: 'xxxxxxxxxxxxx', //你的小程序的APPID  
						// 	    secret: 'xxxxxxxxxxxxx'// 你的小程序的APPsecret  
						// 		js_code: this.code, //wx.login 登录成功后的code  
						// 		grant_type: '',
						// 	},
						// 	success: (cts) => { // 换取成功后 暂存这些数据 留作后续操作  
						// 		this.openId = cts.data.openid //openid 用户唯一标识  
						// 		this.unionid = cts.data.unionid //unionid 开放平台唯一标识   当公众号和小程序同时登录过才会有
						// 		this.session_key = cts.data.session_key //session_key  会话密钥  
						// 		console.log(data);
						// 		console.log("获得秘钥");
						// 		console.log(cts)
						// 		console.log(this.openId, this.session_key)



						// 	}
						// })











					}
				});
			},
	getPhoneNumber(e) {
				console.log(e.detail.errMsg) // 判断用户是否允许获取手机号
				console.log(e);
				console.log(this.session_key);
				let pc = new WXBizDataCrypt('xxxxxxxxxxxxxxxxxxxx', this.session_key);
				let data = pc.decryptData(e.detail.encryptedData, e.detail.iv);
				this.$tools.console1(data)
				// console.log(data)       //data就是最终解密的用户信息  
				this.phone = data.phoneNumber


				// uni.showToast({
				// 	icon: 'none',
				// 	title: data.phoneNumber,
				// 	duration: 20000
				// })
				setTimeout(() => {
					this.getUserInfo()
					// this.createUser()
				}, 1000)

			},

你可能感兴趣的:(vue,uniapp,微信小程序,小程序,javascript)