一共两步:1:用户同意授权,获取code,2:将code值传给后台获取用户openId或用户信息

一.怎样获取code值

1.登录微信公众平台后台获取公众号的AppId,设置回调地址。

回调地址设置:开发>接口权限>网页服务>网页授权>修改。并将Mp***.text文件上传至填写域名或路径指向的web服务器的根目录下。

2.根据开发需要,静默授权还是非静默授权

① 静默授权:snsapi_base,没有弹窗,只能获取用户的openId。

②非静默授权:snsapi_userinfo,有弹框弹出需要用户手动点击确认授权。可以获取openId,用户的头像、昵称等

下图为scope等于snsapi_userinfo时的授权页面

用户同意授权后

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

3.代码片段

若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问

const code = this.getParam('code')  // 获取路径中的code
if (code == null || code === '') {//判断未获取过codeconst pathStr = window.location.hrefwindow.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=' + encodeURIComponent(pathStr) + '&response_type=code&scope=snsapi_base&state=1#wechat_redirect';
} else {this.getOpenId(code) //把code传给后台获取用户信息
}

function getParam(name) {//获取页面路径的某个字段所对应的参数。
                var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 
                var r = str.split("?")[1].match(reg); //匹配目标参数
                if (r != null) {
                    return decodeURIComponent(r[2]);
                }
                return null; //返回参数值
}

如果配置参数一一对应,那么此时已经通过回调地址刷新页面后,你就会看到在地址栏中的code了。

二:前端截取地址栏中的code后通过调接口把code传给后台,后台通过code获取openId和用户头像昵称等信息并返回给前端

代码示例:

function getOpenId (code) {

$.ajax({ type: 'POST', dataType: 'json', url: 'xxx', data: { code: code }, success: function (res) { if (res.status == -1) {

} else {

} } }); }

H5获取微信公众号用户openId,用户信息相关推荐

  1. vue axios封装 获取微信公众号用户的openid

    目录 axios封装 openid vue vue+ts axios封装 一般会在项目的src目录中,新建一个文件夹,作为网络请求模块,用来封装axios, 创建axios实例: axios.crea ...

  2. 用java代码实现获取微信公众号用户关注列表

    获取微信公众号用户关注列表 通用工具类:CommonUtil package com.weixin.util;import java.io.BufferedReader; import java.io ...

  3. 微信公众号-根据openID给指定用户发送信息

    微信公众号-给指定用户发送信息 文章目录 微信公众号-给指定用户发送信息 前言 一.开通模板消息 二.项目使用步骤 1.引入库 2.直接上代码 controller service 其他一些封装的类 ...

  4. 获取微信公众号用户分组-php开发管理公众号用户

    经过上一节课程的学习, 你已经能够新建很多的用户分组, 要在我们的web服务器管理这些分组时, 你可以先从微信服务器把所有的分组获取到, 然后保存到自己的web服务器数据库, 这样下次使用时, 就可以 ...

  5. 微信小程序- css相比,wxss区别?小程序关联微信公众号如何确定用户的唯一性?微信小程序中的用户ID(openid和unionid)

    1 与css相比, wxss区别? 1) 响应式长度 rpx 2) 样式导入 3) 小程序不支持通配符* *{ width:100rpx; height:100rpx; } 2 小程序关联微信公众号如 ...

  6. 获取微信公众号关注总人数和用户列表

    工作需要获取公司获取实时公众号总人数,我当时第一反应看管理后台不就行了·····,想完就觉得有点傻,看管理后台还需要让我些什么呀!!! 然后开始整理思路,想要获取微信公众号管理后台数据,肯定是要调用微 ...

  7. 微信公众号已关注用户能分组吗?怎么分?

    实现微信公众号已关注用户分组,微号帮提供了粉丝分组批量转移功能实现,可以实现公众号在线给用户分组,将用户分组条件设置好通过功能提交给微号帮,微号帮自动进入后台处理任务,批量给公众号用户分组,与公众号后 ...

  8. 获取微信公众号openID,code

    获取微信公众号openID public class AdminUtil{#region 获取OpenID/// <summary>/// 获取OpenID/// </summary ...

  9. uniapp中h5网页微信公众号授权

    uniapp微信网页授权 uniapp中h5网页微信公众号授权 主要代码 获取code返回的code截取代码 uniapp中h5网页微信公众号授权 微信官方文档–>网页授权 uniapp中h5网 ...

最新文章

  1. 从业务发展的阶段看系统发展
  2. [k8s] 第九章 安全认证
  3. wp7上MD5加密类
  4. vue单选,多选,多选的内容显示在页面可删除
  5. jmeter connection reset解决方法
  6. Date类的构造方法和成员方法
  7. python导入random模块_Python内置模块之random
  8. CVPR 2020 | 中科院、商汤联合提出大规模多标签目标检测新算法
  9. diskgenius 单文件_电脑数据恢复及分区管理软件DiskGenius 英文专业版
  10. 《人工智能及其应用》1-6章
  11. 中柏平板触摸驱动_要成绩也要玩乐,聊聊学生买平板那些事儿
  12. WPS 2019使用技巧及WPS2019政府版最全合集
  13. 解决苹果手机给windows笔记本电脑开热点电脑连接不上热点的问题
  14. 内容赛道进入集团作战时代,巨头呈现“一超多强”竞争格局
  15. 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...
  16. UVa 1645 - Count
  17. 【Servlet篇】Response对象详细解读
  18. eclipse32位安装教程_Mastercam X6/(32位、64位) 软件安装教程
  19. 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...
  20. [附源码]计算机毕业设计二次元信息分享平台的设计及实现

热门文章

  1. android 录制mv框架,MVPro MVPro-简单的 AndroidMVP 框架 @codeKK Android开源站
  2. MySQL递归查询上下级菜单
  3. JVM(六)---jvm压缩指针
  4. 2.ESP32-S2 USB 挂载内部Flash,当作U盘使用,无线U盘
  5. 【CTF】CTF竞赛介绍以及刷题网址
  6. unity富文本使用:同一个文本框展示不同样式字体
  7. 面试必问!!彻底搞清楚 tcp 的三次握手四次挥手
  8. 电控系统开发工作内容梳理
  9. UE4-网格物件,比如窗户屏风栅格,出现频闪的解决
  10. HFSS常见绘图技巧