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


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入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
Bootstrap媒体对象的实现
May 01 Javascript
js中window.open的参数及注意注意事项
Jul 06 Javascript
js 数据存储和DOM编程
Feb 09 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
基于JavaScript实现百度搜索框效果
Jun 28 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
使用JS获取SessionStorage的值
Jan 12 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
微信小程序图片自适应实现解析
Jan 21 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
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
Adodb的十个实例(清晰版)
2006/12/31 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
Python设计实现的计算器功能完整实例
2017/08/18 Python
python list元素为tuple时的排序方法
2018/04/18 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python异步存储数据详解
2019/03/19 Python
python实现图片九宫格分割
2021/03/07 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
物业保安员岗位职责
2014/03/14 职场文书
大学生团员个人总结
2015/02/14 职场文书
安全教育主题班会总结
2015/08/14 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电