H5获取微信公众号用户openId,用户信息
一共两步: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,用户信息相关推荐
- vue axios封装 获取微信公众号用户的openid
目录 axios封装 openid vue vue+ts axios封装 一般会在项目的src目录中,新建一个文件夹,作为网络请求模块,用来封装axios, 创建axios实例: axios.crea ...
- 用java代码实现获取微信公众号用户关注列表
获取微信公众号用户关注列表 通用工具类:CommonUtil package com.weixin.util;import java.io.BufferedReader; import java.io ...
- 微信公众号-根据openID给指定用户发送信息
微信公众号-给指定用户发送信息 文章目录 微信公众号-给指定用户发送信息 前言 一.开通模板消息 二.项目使用步骤 1.引入库 2.直接上代码 controller service 其他一些封装的类 ...
- 获取微信公众号用户分组-php开发管理公众号用户
经过上一节课程的学习, 你已经能够新建很多的用户分组, 要在我们的web服务器管理这些分组时, 你可以先从微信服务器把所有的分组获取到, 然后保存到自己的web服务器数据库, 这样下次使用时, 就可以 ...
- 微信小程序- css相比,wxss区别?小程序关联微信公众号如何确定用户的唯一性?微信小程序中的用户ID(openid和unionid)
1 与css相比, wxss区别? 1) 响应式长度 rpx 2) 样式导入 3) 小程序不支持通配符* *{ width:100rpx; height:100rpx; } 2 小程序关联微信公众号如 ...
- 获取微信公众号关注总人数和用户列表
工作需要获取公司获取实时公众号总人数,我当时第一反应看管理后台不就行了·····,想完就觉得有点傻,看管理后台还需要让我些什么呀!!! 然后开始整理思路,想要获取微信公众号管理后台数据,肯定是要调用微 ...
- 微信公众号已关注用户能分组吗?怎么分?
实现微信公众号已关注用户分组,微号帮提供了粉丝分组批量转移功能实现,可以实现公众号在线给用户分组,将用户分组条件设置好通过功能提交给微号帮,微号帮自动进入后台处理任务,批量给公众号用户分组,与公众号后 ...
- 获取微信公众号openID,code
获取微信公众号openID public class AdminUtil{#region 获取OpenID/// <summary>/// 获取OpenID/// </summary ...
- uniapp中h5网页微信公众号授权
uniapp微信网页授权 uniapp中h5网页微信公众号授权 主要代码 获取code返回的code截取代码 uniapp中h5网页微信公众号授权 微信官方文档–>网页授权 uniapp中h5网 ...
最新文章
- 从业务发展的阶段看系统发展
- [k8s] 第九章 安全认证
- wp7上MD5加密类
- vue单选,多选,多选的内容显示在页面可删除
- jmeter connection reset解决方法
- Date类的构造方法和成员方法
- python导入random模块_Python内置模块之random
- CVPR 2020 | 中科院、商汤联合提出大规模多标签目标检测新算法
- diskgenius 单文件_电脑数据恢复及分区管理软件DiskGenius 英文专业版
- 《人工智能及其应用》1-6章
- 中柏平板触摸驱动_要成绩也要玩乐,聊聊学生买平板那些事儿
- WPS 2019使用技巧及WPS2019政府版最全合集
- 解决苹果手机给windows笔记本电脑开热点电脑连接不上热点的问题
- 内容赛道进入集团作战时代,巨头呈现“一超多强”竞争格局
- 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...
- UVa 1645 - Count
- 【Servlet篇】Response对象详细解读
- eclipse32位安装教程_Mastercam X6/(32位、64位) 软件安装教程
- 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...
- [附源码]计算机毕业设计二次元信息分享平台的设计及实现