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


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 相关文章推荐
IE8 引入跨站数据获取功能说明
Jul 22 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
Apr 02 Javascript
使用angularjs创建简单表格
Jan 21 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
Echarts基本用法_动力节点Java学院整理
Aug 11 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
Aug 12 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
vue中nextTick用法实例
Sep 11 Javascript
vue组件是如何解析及渲染的?
Jan 13 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
javascript 小型动画组件与实现代码
2010/06/02 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
php命令行模式代码实例详解
2021/02/26 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
利用aardio给python编写图形界面
2017/08/21 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
实体的生命周期
2013/08/31 面试题
办公室经理岗位职责
2014/01/01 职场文书
转党组织关系介绍信
2014/01/08 职场文书
财务主管自我鉴定
2014/01/17 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
2015年调度员工作总结
2015/04/30 职场文书
项目战略合作意向书
2015/05/08 职场文书
结婚典礼主持词
2015/06/29 职场文书
Java8中接口的新特性使用指南
2021/11/01 Java/Android
Python利用FlashText算法实现替换字符串
2022/03/31 Python