美文网首页IT@程序员猿媛
「每天3分钟」搞定微信小程序授权

「每天3分钟」搞定微信小程序授权

作者: 白晓明 | 来源:发表于2019-06-11 18:33 被阅读37次

    微信小程序提供了一个简单、高效的应用开发框架和丰富的组件及API,能够使开发者开发具有原生APP体验的服务。

    在微信小程序异军突起后,使得众多的中小型企业迎来了二次创业的机会。同时,微信小程序依托微信,给用户提供了便捷的使用方式,其不用下载即可使用的优点,取得了各行各业的喜爱。市面上,不同类型的微信小程序也不断的出现,如某东,某宝等也纷纷入驻。

    微信小程序上线以来,受到众多开发者和中小型企业的喜爱,而我司页紧跟大流,希望能够为用户提供更加完善的业务。

    微信小程序的主要开发语言是JavaScript,所有对开发者来说,是比较容易上手的,对于企业而言,成本是可控的。

    1 如何打通自己账号与微信账号的关联

    随着微信小程序的不断完善,其提供给开发者的功能不断的优化。同时,需求也不断地跟进。随着功能点的不断增加,如何将微信登录与站点账号绑定变得尤为重要。

    如果依旧使用Web端的方式进行登录校验,这样会无辜的多了一步操作,用户在使用时,会感觉繁琐,因此账号的绑定便成为解决的有效方法。


    2 小程序与我的服务器账号互通有无

    ① 我们通过wx.login()方法拿到微信用户的code;
    ② 然后通过wx.request()将code传递到我们服务器后台;
    ③ 根据小程序提供的APPID、SECRET以及传过来的CODE值到微信服务器获取到微信唯一标识openid。
    ④ 接着我们对openid进行加密处理后返回到小程序前台;
    ⑤ 用户登录账号后将openid与账号关联,后续访问接口时都带openid。

    3 部分代码

    //使用wx.login()获取code值
    wx.login({
      success: function(res) {
        if (res.code) {
          app.util.commonRequest(getOpenIdUrlPath, {
            code: res.code
          }, {'content-type': 'application/x-www-form-urlencoded'}, 
          'POST', function(res) {
            if(res.statusCode === 200) {
              wx.setStorageSync('openid', res.data.openid); //存储openid
              wx.setSotrageSync('userInfo', res.data.userInfo);//存储用户信息
              wx.reLaunch({
                url: '/pages/index/index',
              });
            }
          });
        } else {
          app.util.showModalTip('提示', res.errMsg, '确定');
        }
      }
    });
    
    //返回加密openid
    public static String getOpenID(String APPID, String SECRET, String code) {
      String openid = "";
      String aturl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + APPID + "&secret=" + SECRET
          + "&code=" + code + "&grant_type=authorization_code";
      try {
        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(aturl);
        HttpResponse response = client.execute(request);
    
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
          String strResult = EntityUtils.toString(response.getEntity());
    
          JSONObject jsonResult = new JSONObject(strResult);
          openid = 3RDMD((String) jsonResult.get("openid"));
          return openid;
        } else {
          return "获取OpenID失败";
        }
    
      } catch (IOException e) {
       return "获取OpenID失败";
      }
    }
    
    【获取最新消息,请关注我的公众号】

    4 一点需要注意的“坑”

    相关文章

      网友评论

        本文标题:「每天3分钟」搞定微信小程序授权

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