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


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 相关文章推荐
js Form.elements[i]的使用实例
Nov 13 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
node.js cookie-parser之parser.js
Jun 06 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
JavaScript两个变量交换值的实现方法
Mar 01 Javascript
VUE中v-model和v-for指令详解
Jun 23 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
微信小程序按钮点击动画效果的实现
Sep 04 Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python中的 enum 模块源码详析
2019/01/09 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Django values()和value_list()的使用
2020/03/31 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
我未来的职业规划范文
2014/01/11 职场文书
在校实习生求职信
2014/06/18 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
初中语文教师研修日志
2015/11/13 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python