微信公众号开发之获取oppenid和用户基本信息

摘要:
并且需要先获取到全局access_token,这里不对全局access_token的获取做详细讲解,可以参考微信公众号开发文档获取,access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。用code来换取oppenid,code可在第二步用来获取oppenid和页面access_token,这个页面access_token和全局access_token不一样,页面access_token可用来获取用户基本信息。

前言:

在微信公众号请求用户网页授权之前,开发者需要先在自己的公众平台配置好基本配置,修改授权回调域名JS安全域名。并且需要先获取到全局access_token,这里不对全局access_token的获取做详细讲解,可以参考微信公众号开发文档获取,access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

正文:

第一步:用户同意授权,获取code

oppenid为一个微信用户的唯一编码,一个oppenid代表一个用户,获取这个值是我们辨别用户的唯一识别编号,那我们怎么获取它呢。

用code来换取oppenid,code可在第二步用来获取oppenid和页面access_token,这个页面access_token和全局access_token不一样,页面access_token可用来获取用户基本信息。

url参数的位置必须是按照下图这样排序,如果链接的参数顺序不对,授权页面将无法正常访问。跳转回调redirect_uri,可根据用户自己的需要跳转,并且可以在里面带参数,但须使用urlEncode对链接进行处理。

参数scope可选择两种不同的方式为snsapi_base或者snsapi_userinfo,snsapi_base当用户打开的时候不会有提示授权页面,但下一步获取用户基本信息的时候必须用户关注微信公众号才能获得,而snsapi_userinfo则在用户不关注的情况下也能获得基本信息但会多一个提示授权的页面。类似下图

微信公众号开发之获取oppenid和用户基本信息第1张

参数说明:

微信公众号开发之获取oppenid和用户基本信息第2张

代码编写:我这里用的需要用户授权的方式

微信公众号开发之获取oppenid和用户基本信息第3张

第二步:通过code换取网页授权access_token

此处是回调方法,可以获得code,用code可获得网页授权access_token,这个access_token可用来获取用户基本信息,废话不多说直接上代码

微信公众号开发之获取oppenid和用户基本信息第4张

下面是调取方法的代码:

获取oppenid和网页授权access_token

WeChat_Var.getAppId()和WeChat_Var.getAppSecret()是公众号的appid和appsecret可登录绑定的公众号查看

微信公众号开发之获取oppenid和用户基本信息第5张

查询用户基本信息:

网页授权access_token在此处用到,如果你的数据库编码是utf8mb4 -- UTF-8 Unicode则可不用去除微信名的特殊符号,如果不是则添加会乱码,用这个方法第一步的scope必须为snsapi_userinfo

微信公众号开发之获取oppenid和用户基本信息第6张

微信公众号开发之获取oppenid和用户基本信息第7张

返回参数:

微信公众号开发之获取oppenid和用户基本信息第8张

查询用户是否关注公众号:

如果用户关注了就可以活动用户名和头像等信息,没关注则为null

微信公众号开发之获取oppenid和用户基本信息第9张

微信公众号开发之获取oppenid和用户基本信息第10张

去除特殊符号:

微信公众号开发之获取oppenid和用户基本信息第11张

微信公众号开发之获取oppenid和用户基本信息第12张

当业务需求是需要关注公众号才能操作下一步的时候,可以使用snsapi_base,提高体验感,并且关注的情况下可获得基本信息。

免责声明:文章转载自《微信公众号开发之获取oppenid和用户基本信息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jq图片懒加载Mac下内网穿透的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java后台解决跨域问题

解决跨域问题的方式有很多,这里主要是添加注解的方式和采用添加拦截器的方法: 方法一、spring boot中只用在Controller类上添加一个“@CrossOrigin“注解就可以实现对当前controller 的跨域 访问了,当然这个标签也可以加到方法上。 @CrossOrigin public classCommonController { }...

Nginx 配置按日期每天生成一个日志文件

百度了几个配置方法,只有一个成功了,记录下。 1. 先设个变量$logdate map $time_iso8601 $logdate { '~^(?<ymd>d{4}-d{2}-d{2})'$ymd; default 'date-not-found'; } 上面这段放到 http 块,我用的宝塔面板,在nginx管理里修改...

钉钉微应用的免登录流程

  最近做了个钉钉企业内部微应用的项目。记录下自己的心得。   首先根据官方文档明白免登流程   免登录的流程如上。首先我们需要拿到自己企业的corpId,和corpSecret,访问企业后台https://oa.dingtalk.com/index.htm#/microApp/microAppList登录后就可以拿到(当然你得有管理员权限),拿到这两个...

Access数据库 字段值 字符替换

两种方法: (一)Access数据库内部使用方法 Update 表 SET 字段=replace(字段,"原字符","替换字符") 示例: 假设表为biao、字段为content、原字符为xiazai.jb51.net、替换字符为down1.jb51.net, 那么相应的SQL语句如下:Update biao SET content=replace(co...

ranger kafka

Authorizing Kafka access over non-authenticated channel via Ranger This section answers some questions one is likely to encounter when trying to authorize access to Kafka over non...

微信公众平台开发教程(一) 微信公众账号注册流程

微信公众平台开发教程(一) 微信公众账号注册流程 具体的操作步骤 1、注册公众账号 注册地址:http://mp.weixin.qq.com/ 1)首先需要邮箱注册: 2)邮箱激活。邮箱将会收到激活邮件,点击激活链接即可。 3)需要登记个人信息。这里需要提供一些个人信息或者单位信息。 现在个人只允许注册订阅号,公司单位才能注册服务号,服务号...