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


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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
div模拟选择框示例代码
Nov 03 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
浅谈Angular 观察者模式理解
Nov 01 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 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结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
详解PHP归并排序的实现
2016/10/18 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
详解如何用babel转换es6的class语法
2018/04/03 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
浅析Python 责任链设计模式
2020/09/11 Python
机械设计制造专业个人求职信
2013/09/25 职场文书
人事专员岗位职责
2013/11/20 职场文书
环保公益广告语
2014/03/13 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2016年重阳节慰问信
2015/12/01 职场文书