IT@程序员猿媛

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

2019-06-11  本文已影响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 一点需要注意的“坑”

上一篇 下一篇

猜你喜欢

热点阅读