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


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 相关文章推荐
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
用jquery统计子菜单的条数示例代码
Oct 18 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
jQuery动态创建元素以及追加节点的实现方法
Oct 20 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
angularjs点击图片放大实现上传图片预览
Feb 24 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
React 组件间的通信示例
Jun 14 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利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python实现windows下文件备份脚本
2018/05/27 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
德国帽子专家:Hutshopping
2019/11/03 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
工作建议书范文
2014/05/13 职场文书
诚信考试标语
2014/06/24 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
开展警示教育活动总结
2015/05/09 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技