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


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游戏之优化篇
Nov 08 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
jQuery图片左右滚动代码 有左右按钮实例
Jun 20 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
Vue动态实现评分效果
May 24 Javascript
react-native ListView下拉刷新上拉加载实现代码
Aug 03 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
vue实现登录拦截
Jun 29 Javascript
用javascript实现倒计时效果
Feb 09 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 screw加密php源代码
2013/06/20 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
php的debug相关函数用法示例
2016/07/11 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
详解JS数值Number类型
2018/02/07 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
python函数的5种参数详解
2017/02/24 Python
Python 字符串与数字输出方法
2018/07/16 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
python路径的写法及目录的获取方式
2019/12/26 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
年会搞笑主持词串词
2014/03/24 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
放牛班的春天观后感
2015/06/01 职场文书
网吧管理制度范本
2015/08/05 职场文书
校园广播稿范文
2015/08/19 职场文书
社区结对共建协议书
2016/03/23 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android