H5在微信中获取openid

为什么要获取openid

openId是用户在当前公众号下的唯一标识(‘身份证’)。在微信中进行微信分享、支付等操作时需要用户的openid。H5要在微信中获取到用户openid,需要获得微信授权,授权分两种方式:静默授权和手动授权

静默授权:用户使用过程中不知不觉获取到openid,不需要用户手动授权,但是会在原页面进行刷新

手动授权:需要用户点击同意授权,能获取到更多用户信息

(我本次使用的是静默授权,所以详细记录一下静默授权的方式)

获取方法

1、首先,要有一个公众号,以及公众号的appid,然后在公众号后台上设置你的网页授权域名(注意不加http://和https://)

2、静默授权,在进入网页之后,访问微信提供的url,在其中设置授权方式以及回调页面url,返回的页面url中就会包含一个code参数

(注意:此处的url是转码过后的url)

url转码方法:

var url = this.urlencode(url_old);

// 编码函数

urlencode (str) {

str = (str + '').toString();

return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').

replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');

},

具体获取code方法:

// 获取code

getBaseInfos(){

var url_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+你的appid+"&redirect_uri="+当前页面url+"&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";

window.location.href = url_code;//打开这个链接,你的url后面就会跟上code的参数

}

如果配置参数全部正确,那么此时通过回调地址刷新页面后,你就会看到在地址栏中的code了。

注意:要监测当前url中是否含有code参数,如果包含的话就继续下一步操作,否则页面是一直重复刷新反复获取code。且要注意code码只能使用一次,使用过后就失效了。

3、拿到code之后,需要把code传给后端,后端去请求微信获取openid等参数,前端是获取不到的,微信开发文档中是这么写的:

微信开发文档

后端请求成功后,得到的数据应该是这样的

4、这样我们就能获取到用户的openid进行开发了

开发建议:

判断是否微信内置浏览器,如果是微信内置浏览器的话,去获取用户的openid,否则在外面浏览器中打开获取不到code是会报错的。

1、判断是否是微信浏览器

isWeiXin() {

var ua = window.navigator.userAgent.toLowerCase();

if (ua.match(/MicroMessenger/i) == 'micromessenger') {

return true;

} else {

return false;

}

}

2、根据以上函数判断值进行不同的操作

if(this.isWeiXin()){

console.log(" 是来自微信内置浏览器")

if(url_s.indexOf("code") > 0 ){// 如果url字符串包含code字段

this.code = cs.code;//则获取code参数值并存入缓存

localStorage.setItem("code", cs.token);

this.getOpenId();//继续下一步获取openid

}else{//否则,就先调取函数获取code

this.getBaseInfos();

}

}else{

console.log("不是来自微信内置浏览器")

}

H5在微信中获取openid相关推荐

  1. 微信公众号H5页面中获取openId

    必要条件 已经认证的公众号(企业号可以,个人号是不能绑定H5的) https认证域名,没有认证的域名微信中不能配置回调地址 微信公众平台认证通过,并创建app 步骤 获取code (需要配置选取sco ...

  2. Uniapp 接入微信H5登录,并获取openid和unionid 含Sql、PHP完整代码

    Uniapp 接入微信H5登录,并获取openid和unionid 实现目标:通过微信H5接入微信获取openid和unionid.用户头像,以及实现登录. 实现目标,如图: 具体实现 MySQL代码 ...

  3. 微信中获取微信用户信息的2种方式

    微信中获取微信用户信息的2中方式 1, 在公众号底部菜单栏地址配置h5地址,如 http://test.dingdong.com/page1 然后前端在所有页面前拦截如login页面,查看是否有tok ...

  4. 微信授权获取openID等信息,这里简化记录一下

    微信授权获取openID等信息 微信测试平台连接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 授权操作必须用外网(推荐 ...

  5. H5及微信中唤起app的解决方案

    H5及微信中唤起app的解决方案 参考文章: (1)H5及微信中唤起app的解决方案 (2)https://www.cnblogs.com/axl234/p/11082826.html 备忘一下.

  6. openid java_微信小程序调用微信登陆获取openid及java做为服务端示例

    一.微信小程序 第一步:调用 wx.login获取code 文档地址 第二步:判断用户是否授权读取用户信息 文档地址 第三步:调用wx.getUserInfo读取用户数据 文档地址 第四步:由于小程序 ...

  7. node 微信授权 获取openid

    node获取微信授权拿到openid 需要了解的网站   1.微信授权. 先说一下流程(一张图代替所有): 流程步骤: 1.用户同意,获取code. 2.通过code获取网页授权access_toke ...

  8. 绑定微信以及获取openId

    转载自: https://www.cnblogs.com/aiziji/p/7418755.html 由于公司最近在做一个微信公众号的项目,需要获取用户openId,我再一次踏入了微信的坑! 先在这里 ...

  9. 微信登录获取 openid 失败原因

    今天再开发网站微信登录的时候,用 curl_init 无法获取 openid,代码如下 $code = isset($_GET['code']) ? trim($_GET['code']) : ''; ...

最新文章

  1. 开发环境配置--Ubuntu+Qt4+OpenCV(三)
  2. harbor的镜像复制功能使用教程
  3. 苹果台式电脑怎么开机_龙华苹果电脑回收公司,台式电脑回收公司电话
  4. P4762-[CERC2014]Virus synthesis【PAM,dp】
  5. Spring集成–配置Web服务客户端超时
  6. python 反传播_岗位 | 滴滴急招反欺诈数据分析实习生(可转正)!字节跳动+德勤实习生项目热招中...
  7. java 父类_java 调用父类的父类
  8. nginx + gunicorn + django 2.0 踩坑
  9. 我很喜欢电影背后这个看上去很精神分裂的故事,跟影片中那个盘根错节的故事相得益彰。好的艺术作品永远都不可能被简化成纬度单一的说教。
  10. Spring Security源码解析(一)
  11. 【EXLIBRIS】随笔记 004
  12. 【rzxt】笔者支招:电脑的散热大户显卡温度过高如何解决
  13. linux 查看系统配置
  14. pygame显示图片的方法_pygame系列教程——1.2加载及显示图片
  15. 计算机专业120分,【哈尔滨工业大学,专业课120分】跟你唠点真情实感。
  16. android逆向分析腾讯微视研究无限循环视频嵌套滑动不中断的实现方式
  17. Naruto图片下载
  18. 常用的HTTP请求方法
  19. not exists 中from 后面不同写法带来的效率区别
  20. 中文垂直搜索引擎、行业搜索引擎大全(最新计137家) (转贴)

热门文章

  1. mysql注入之dns注入
  2. 鲁大师2022年Q3电脑排行:御三家各有千秋,Q4将有大变动?
  3. Win2000/WinXP/Win2003双系统启动
  4. Android_仿苹果数字键盘以及判断信用卡有效期的Editext
  5. HTML-spanがtext-align无效的问题
  6. 自信——深窥内心,磨练经历
  7. 输入字符串,统计其中大写,小写字母,数字,其他字符。
  8. debian linux 进入单用户模式 修复系统,在单用户模式/紧急模式下启动Ubuntu 18.04/Debian 9系统...
  9. 中国节气之数九寒天之说
  10. 零代码带来的工作和创业机会