uniapp写微信小程序,获取openId、unionId

1、使用uniapp读取获取用户openId

appId,secret  可以从微信公众平台获取,(点击右上角头像,向下滑,可以找到)

注意:这个一般写了app.vue里有个onlanch函数,否则有可能在进入小程序时获取不到openid

微信接口路径为 “https://api.weixin.qq.com/sns/jscode2session


	/**
	 * 前端获取openId
	 */
	getOpenId() {
		let openId = ''
		uni.login({
			success: res => {
				//code值(5分钟失效)
				let code = res.code;
				//小程序appid
				let appid = '1111111'; //小程序id
				//小程序secret
				let secret = '111111'; //密钥
				//wx接口路径
				let url = 'https://api.weixin.qq.com/sns/jscode2session';
				uni.request({
					url: url, // 请求路径
					data: {
						appid: appid,
						secret: secret,
						js_code: code,
						grant_type: 'authorization_code'
					}, // 请求体
					method: 'GET', //请求方法,
					header: {}, //请求头
					success: result => {
						//响应成功
						//这里就获取到了openid了
						// openId = result.data.openid
						uni.setStorage({
							key: 'openId',
							data: result.data.openid
						})
					},
					fail: err => {} //失败
				});
			}
		});
	},

2、uniapp 获取 unionId

获取unionId的前提条件:微信开放平台绑定你的小程序或者公众号至少一个(注意:一定要是,企业版的,个人版的是不支持unionId的)

具体代码如下:

//前端获取unionId

	getUnionId() {
		// 获取用户信息
		uni.getUserInfo({
			success: (res) => {

                //这里是成功后 解构 返回的res
				const { encryptedData , iv, userInfo } = res
				// 解密用户信息并获取unionid
				wx.login({
					success: (loginResult) => {
						wx.request({
						    url: 'https://api.weixin.qq.com/sns/jscode2session',//路径固定
							data: {
							    appid: '123123',   // 需要填写appId
							    secret: '123123',  // 密钥
							js_code: loginResult.code,  //调取uni.login后,成功后会返回code
								grant_type: 'authorization_code' //固定的
							},
							success: (sessionResult) => {

               //成功后会返回 openId,以及 session_key 用来解密 上边获取的 encryptedData 
								const {openid, session_key } = sessionResult.data
								var appId = '123123' //填写你的appId
								var sessionKey = session_key
								var encryptedDataStr = encryptedData

				// 解密   WXBizDataCrypt 可以在微信开发文档中找到
								const pc = new WXBizDataCrypt(appId, sessionKey);

                // unionId在data里
								const data = pc.decryptData(encryptedDataStr, iv);
								console.log(JSON.stringify(data));

								
							}
						})
					}
				})
			}
		})
	},

注意:请求openId或unionId,一般后端做,前端做的话,微信小程序可能无法,发布成功。。。。。。。

后端获取openId

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值