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


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 相关文章推荐
js setattribute批量设置css样式
Nov 26 Javascript
十分钟打造AutoComplete自动完成效果代码
Dec 26 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
JS跨域总结
Aug 30 Javascript
JavaScript与DOM组合动态创建表格实例
Dec 23 Javascript
document.execCommand()的用法小结
Jan 08 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
如何利用JQuery实现从底部回到顶部的功能
Dec 27 Javascript
vue实现局部刷新的实现示例
Apr 16 Javascript
基于Fixed定位的框选功能的实现代码
May 13 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 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 错误之引号中使用变量
2009/05/04 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
React服务端渲染原理解析与实践
2021/03/04 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
django表单的Widgets使用详解
2019/07/22 Python
基于python操作ES实例详解
2019/11/16 Python
python如何进入交互模式
2020/07/06 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
世界上最大的二手相机店:KEN
2017/05/17 全球购物
后勤岗位职责
2013/11/26 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
2014年加油站工作总结
2014/12/04 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
尊师重教主题班会
2015/08/14 职场文书