赞
踩
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 => {} //失败
- });
- }
- });
- },
具体代码如下:
- //前端获取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));
-
-
- }
- })
- }
- })
- }
- })
- },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。