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


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 Easyui Tree的oncheck事件实现代码
May 28 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
让IE8浏览器支持function.bind()方法
Oct 16 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
js识别uc浏览器的代码
Nov 06 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
JavaScript程序中实现继承特性的方式总结
Jun 24 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 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 配置文件中open_basedir选项作用
2009/07/19 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
php中explode函数用法分析
2014/11/15 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python的设计模式编程入门指南
2015/04/02 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
深入理解Django的中间件middleware
2018/03/14 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
python构建基础的爬虫教学
2018/12/23 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
大学生创业计划书的用途
2014/01/08 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
手工社团活动方案
2014/02/17 职场文书
奥利奥广告词
2014/03/20 职场文书
爱与责任演讲稿
2014/05/20 职场文书
抵押贷款承诺书
2014/05/30 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技