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


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中html()方法使用不当带来的陷阱
Apr 07 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
JavaScript常见的五种数组去重的方式
Dec 15 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 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中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
javascript 动态添加表格行
2006/06/22 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
js实现密码强度检验
2017/01/15 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python lxml中etree的简单应用
2019/05/10 Python
Python如何实现动态数组
2019/11/02 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
营销经理工作检讨书
2014/11/03 职场文书
2014年团工作总结
2014/11/27 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python