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


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 相关文章推荐
ie9 提示'console' 未定义问题的解决方法
Mar 20 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
AngularJS初始化过程分析(引导程序)
Dec 06 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
Apr 15 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
简单理解js的冒泡排序
Dec 19 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
Vue底层实现原理总结
Feb 17 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
js序列化和反序列化的使用讲解
Jan 19 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 Javascript
详解如何使用nvm管理Node.js多版本
May 06 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
php封装的page分页类完整实例
2016/10/18 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
javascript 三种编解码方式
2010/02/01 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
Python基于dom操作xml数据的方法示例
2018/05/12 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
什么是反射
2012/03/17 面试题
旷课检讨书1000字
2014/02/14 职场文书
《学会待客》教学反思
2014/02/22 职场文书
公司总经理任命书
2014/06/05 职场文书
团队口号大全
2014/06/06 职场文书
死亡诗社观后感
2015/06/05 职场文书
2016公司年会主持词
2015/07/01 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
python游戏开发之pygame实现接球小游戏
2022/04/22 Python