微信端开发--登录小程序步骤


Posted in Javascript onJanuary 11, 2017

这个小程序的主要目的是为了用户用微信的用户信息登录后将用户信息授权存入自己的数据库中,这样以后每次微信登录得到的code 所得到的 openid 可以在项目的数据库中查到该用户的相关信息。

在测试的过程中,需要用户登录得到的code,所以会用到微信开发小工具~!

微信端开发--登录小程序步骤

该工具的使用必须被项目授权

微信端开发--登录小程序步骤

所生成的code是有时间限制的

微信登录端口的api如下

接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数:

参数 必填 说明
appid 是 小程序唯一标识
secret 是 小程序的 app secret
js_code 是 登录时获取的 code
grant_type 是 填写为 authorization_code

返回参数:

参数 说明
openid 用户唯一标识
session_key 会话密钥
expires_in 会话有效期, 以秒为单位, 例如2592000代表会话有效期为30天

返回说明:

//正常返回的JSON数据包
{
   "openid": "OPENID",
   "session_key": "SESSIONKEY"
   "expires_in": 2592000
}
//错误时返回JSON数据包(示例为Code无效)
{
  "errcode": 40029,
  "errmsg": "invalid code"
}

所以我们可以将代码写成如下

公司将发送的报文格式自己都写好了的,我只需要写出请求路径和请求参数就ok

//@Param code 用户登录微信生成的code
//@Return OAuthResult 返回包含openid和session_key和expires_in的类
public OAuthResult getOAuthResultByCode(String code) {
    String path = "/sns/jscode2session";
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("appid", WechatConstant.WECHAT_APP_ID);
    parameters.put("secret", WechatConstant.WECHAT_APP_SECRET);
    parameters.put("js_code", code);
    parameters.put("grant_type", "authorization_code");

    OAuthResult oAuthResult = messageSender.getMessageForObject(path, parameters, OAuthResult.class, false);
    if (oAuthResult.getOpenid() == null){
      throw new BusinessException(BusinessException.Code.OAUTH_PROCESS_ERROR, "OAuth异常,原因:" + oAuthResult.getErrmsg());
    }
    return oAuthResult;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jQuery扩展自写的 UI导航
Jan 13 Javascript
jQuery中绑定事件的命名空间详解
Apr 05 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
JavaScript中的Repaint和Reflow用法详解
Jul 27 Javascript
全面理解闭包机制
Jul 11 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
vue中template的三种写法示例
Oct 21 Javascript
Vue数据驱动模拟实现1
Jan 11 #Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 #Javascript
详解js前端代码异常监控
Jan 11 #Javascript
Vue数据驱动模拟实现3
Jan 11 #Javascript
jQuery实现判断控件是否显示的方法
Jan 11 #Javascript
jQuery Form表单取值的方法
Jan 11 #Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
Jan 11 #Javascript
You might like
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php简单获取目录列表的方法
2015/03/24 PHP
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
JavaScript模块详解
2017/12/18 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
python制作小说爬虫实录
2017/08/14 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
tensorflow 实现数据类型转换
2020/02/17 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
Python如何读取、写入JSON数据
2020/07/28 Python
python中remove函数的踩坑记录
2021/01/04 Python
感恩母亲节演讲稿
2014/05/07 职场文书
拓展训练激励口号
2014/06/17 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
教师节座谈会主持词
2015/07/03 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers