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


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 相关文章推荐
javascript 限制输入和粘贴(IE,firefox测试通过)
Nov 14 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
JS实现鼠标滑过显示边框的菜单效果
Sep 21 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
Jun 13 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 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
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
ztree实现权限横向显示功能
2017/05/20 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python实现类继承实例
2014/07/04 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
家居饰品店创业计划书
2014/01/31 职场文书
班级寄语大全
2014/04/10 职场文书
拉拉队口号
2014/06/16 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
物业公司管理制度
2015/08/05 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书