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


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中trigger()方法用法实例
Jan 19 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
BootStrap3中模态对话框的使用
Jan 06 Javascript
js实现二级导航功能
Mar 03 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
layui前端框架之table表数据的刷新方法
Aug 17 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
javascript canvas API内容整理
Feb 16 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 Javascript
node.js通过url读取文件
Oct 16 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
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python生成ppt的方法
2018/06/07 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
学习Django知识点分享
2019/09/11 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
python numpy库np.percentile用法说明
2020/06/08 Python
python字典按照value排序方法
2020/12/28 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
"引用"与多态的关系
2013/02/01 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
工会主席事迹材料
2014/06/03 职场文书
理财学专业自荐书
2014/06/28 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
速龙x4-860k处理器相当于i几
2022/04/20 数码科技
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js