美文网首页
微信小程序:封装获取微信唯一id,获取用户信息等

微信小程序:封装获取微信唯一id,获取用户信息等

作者: 司徒新新 | 来源:发表于2020-05-14 12:44 被阅读0次

之前写过微信小程序获取唯一id(openid)的方法,但是发现我们的业务比较复杂,在一个类理写了太多的代码,所以进行了简单封装,让使用的时候,看起来不那么复杂,话不多说,看代码!

封装微信唯一id请求方法


/**
 * 获取微信唯一id   openid
 * @param {*} code  wxlogin之后返回的red.code
 */
export function wxOpenIdRequest(code) {   
    console.group('==============>WXOpenId请求<==============');
    if (code == null || code == "") {
        return false
    }
    return new Promise((resolve, reject) => {
        const response = {};
        wx.request({
            url: 'https://api.weixin.qq.com/sns/jscode2session',//微信服务器获取appid的网址 不用变
            method:'POST',//必须是post方法
            data:{
              js_code:code,
              appid:'wx7fb67b8b262222597',//仅为实例appid
              secret:'b2e097ade1bec7d1b334c76e7caf703',//仅为实例secret
              grant_type:'authorization_code'
            },
            header: {
              'content-type': 'application/x-www-form-urlencoded',
            },
            success: (res) => response.success = res.data,
            fail: (error) => response.fail = error,
            complete() {
                if (response.success) {
                    console.info('微信id请求成功:', response.success,"code",response.success.code);
                    resolve(response.success);
                } else {
                    console.info('请求失败:', response.fail);
                    reject(response.fail)
                }
                console.groupEnd();
            },
        });
    });
}

将此方法放在你的网络请求封装类里就可以,如果没有封装好网络请求的小伙伴,可以通过首页二维码加我微信,我发给你,或者等等我整理一下传到github上,然后写一个传送门
😓😓😓
但是需要等我最近加班忙完....

调用


//导入到使用的累里面
import {
  wxOpenIdRequest
} from "../../utils/network"
import {
  setUserInfo,
} from "../../utils/service";

//登录方法
loginAction: function (params) {
  //该button的open-type为"getUserInfo" 获取访问授权的,能获取到用户信息,打开开发者模式可以测试
    if (params.detail.userInfo == null) {
      return
    }
    var that = this
    /*
     * 登录成功 获取 用户信息
     */
    setUserInfo(params.detail.userInfo);
    // 微信登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.log('正在登录.....' + res.code);
        if (res.code) {
          // 获取唯一id
          wxOpenIdRequest(res.code).then(success => {
            console.info("获取微信openid成功");
            console.log("id====", success.openid);
            console.log("session_key====", success.session_key);
            /*
             * 储存方法
             * 将openid存入本地缓存
             */
            wx.setStorageSync('app_openid', success.openid); 
            //执行自己服务器的登录
            getLogin({wxid: success.openid}).then(data => {

            })
          })
          
        } else {
          console.log("登陆失败");
        }
      }
    })
  },

这上面就是我们正常的流程了.首先是微信登录,微信登录成功后会给返回一个code,将此code传过去,获取微信唯一id,微信唯一id获取成功之后,就可以进行自己服务器的操作了

我们自己服务器的操作就是拿到openid,然后去请求我们自己的服务器进行登录,然后获取一个token,然后之后把token放到网络请求的header里,每次都要进行验证.

OK,讲完了,如果有不懂的同学,可以留言或者私聊问我,看到了就会及时回答!

👋👋👋 *加班去鸟*~~~

相关文章

网友评论

      本文标题:微信小程序:封装获取微信唯一id,获取用户信息等

      本文链接:https://www.haomeiwen.com/subject/hqqtohtx.html