uniapp 获取用户信息 openid

<template>
	<div>
		<button type="default" @tap="appLoginWx">微信登录</button>
	</div>
</template>

<script>
	var code;
	var openid;
	var avatarUrl;
	var nickName;
	
	export default {
		data() {
			return {

			};
		},
		methods: {
			appLoginWx() {
				var _this = this;
				// 获取用户信息
				// 注意 getUserProfile 不支持在事件中使用异步操作
				// 否则会触发错误:{errMsg: "getUserProfile:fail can only be invoked by user TAP gesture."}
				uni.getUserProfile({
					//userInfo 获取用户信息
					lang: 'zh_CN',
					desc: '获取用户信息',
					success: userInfo => {
						console.log('userInfo', userInfo);
						// console.log(JSON.stringify(userInfo));
						// rawdata = JSON.parse(userInfo.rawData);
						console.log('头像为  ' + userInfo.userInfo.avatarUrl);
						console.log('微信昵称为  ' + userInfo.userInfo.nickName);
						avatarUrl = userInfo.userInfo.avatarUrl;
						nickName = userInfo.userInfo.nickName;
					
						uni.login({
							//loginInfo 获取code
							provider: 'weixin',
							success: loginInfo => {
								console.log('loginInfo', loginInfo);
								// console.log(loginInfo.code);
								code = loginInfo.code;
								 console.log(code);
								 //如果有了code 拿着code获取openid session_key
								 if (code) {
								 	var appId = '填自己的';
								 	var secret = '填自己的';
								 	wx.request({
								 		url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId +
								 			'&secret=' + secret + '&js_code=' + code +
								 			'&grant_type=authorization_code',
								 		data: {},
								 		header: {
								 			'content-type': 'json'
								 		},
								 		success: function(res) {
								 			openid = res.data.openid //返回openid
								 			// console.log(res)
								 			console.log('openid为  ' + openid);
								 			uni.showToast({
								 				title: "授权成功"
								 			})
								 
								 		}
								 
								 	})
								 
								 }
								 
							}
						});

                       
						uni.request({
							url:_this.apiServer + 'member&m = login',
							method:'POST',
							header:{'content-type':"application/x-www-form-urlencoded"},
							data:{
								openid:openid,
								name:nickName,
								face:avatarUrl
							},
							success:res=>{
								console.log("请求成功")
								console.log("请求成功" ,res)
							},fail:()=>{
								console.log("请求失败")
							}
						})

					},
					fail: err => {
						console.log(err, 'err')
					}
				});
				
				
				
				
				
				
			}
		},
		onLoad: function(options) {
			

		
		}
	}
</script>

<style>
</style>

猜你喜欢

转载自blog.csdn.net/weixin_51867622/article/details/123052744
今日推荐