前言:

在微信公众号请求用户网页授权之前,开发者需要先在自己的公众平台配置好基本配置,修改授权回调域名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则在用户不关注的情况下也能获得基本信息但会多一个提示授权的页面。类似下图

参数说明:

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

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

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

最后这里也可以直接跳去自己的业务页面

下面是调取方法的代码:

 获取oppenid和网页授权access_token

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

查询用户基本信息:

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

返回参数:

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

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

去除特殊符号:

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

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

  1. 微信公众号开发:获取openId和用户信息(完整版)

    注:之前总结怎么进行本地公众号开发调试,时间一长忘记开发配置却忘了,所以这里记录一下公众号开发配置,方便快速上手. 目录 开发前服务器配置 网页授权获取用户基本信息 snsapi_base snsap ...

  2. 微信公众号开发 - token获取(保证同一时间段内只请求一次)

    微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...

  3. 微信公众号开发C#系列-5、用户和用户组管理-支持同步

    微信公众号开发C#系列-5.用户和用户组管理-支持同步 1.概述 眼前时下流行的经济有个叫粉丝经济,粉丝带动收益.一个好运营良好的公众号肯定会有一大批的粉丝团,如何挖掘粉丝来产生效益,是微信营销的关键 ...

  4. 【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...

    步骤一:首先得开通公众号(目的是 获得appid.AppSecret.设置安全域名)~ [公众号设置]→[功能设置] 设置相应的域名 步骤二:编写帮助类WeixinLuyinHelper中的代码 #r ...

  5. 微信公众号开发之获取用户地理位置

    使用微信的用户地理位置接口就要配置这里. 前端代码: function configWx() {var thisPageUrl = location.href.split('#')[0];$.ajax ...

  6. 微信公众号 用户绑定 php,微信公众号开发——网页授权实现简化用户绑定

    本教程的学习条件: 了解微信公众号开发的基本知识.已经申请了微信公众号并设置了开发模式等.如果不了解,请先到微信官方平台学习 需要服务器端开发的基本技能,本文主要讲解流程,基本不涉及具体开发语言. 首 ...

  7. 微信公众号开发系列-获取微信OpenID

    在微信开发时候在做消息接口交互的时候需要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID,接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获 ...

  8. Node微信公众号开发 - 定时获取最新文章同步到MySQL数据库

    0.介绍 本文源码:https://github.com/Jameswain/... ​ ​ ​ 最近有一个需求:把5个公众号的所有文章定时同步到小程序的数据库里,10分钟同步一次.实现这个需求当时我 ...

  9. 微信公众号开发之获取用户信息

    微信获取用户信息的方式有两种,静默授权(无需用户同意)和非静默授权(需要用户" 手动点击 "拉取授权,可以用户无需关注公众号即可获取用户信息) 整体的代码请查看最后,前边为原理介绍 ...

最新文章

  1. 每日一皮:当你开始研究一个新项目时是这样的吗?
  2. linux:文件权限管理
  3. Windows窗体透明效果
  4. Spring和Struts2整合
  5. C语言不用循环不用递归打印0-999的小程序,你看懂了吗?
  6. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】
  7. 机器视觉技术及应用_工业机器人视觉技术的应用前景
  8. IP地址的网络位与主机位
  9. [Matlab科学计算] 有限元法求二阶常微分方程
  10. 公差带与配合 常用基轴制公差带的相互关系
  11. 【聚焦群落生态学】统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法
  12. 用MATLAB敲qda,LOMO_XQDA
  13. 零死角玩转stm32初级篇5-流水灯的前后今生
  14. 基于halcon的二维椭圆测量实例
  15. Useing rvm
  16. 程序员做好这三件事,在哪都能吃得开
  17. 字符串搜索、搜索子串 rangeOfString方法
  18. 修改MySQL 数据库 密码
  19. NHOI 2004 宠物收养所 splay解法
  20. 双CPU之间的通信方案

热门文章

  1. 记numpy高速封装库bottleneck的一个bug
  2. Bitbucket代码合并及冲突处理
  3. shall脚本常用的命令
  4. 微信直播是私域流量还是公域流量
  5. [MATLAB技术贴]漫谈MATLAB矩阵转置
  6. A316J(HCPL-316J)驱动电路的检修
  7. ADUM数字隔离芯片
  8. 视频号封禁大量网课培训 社群营销直播间
  9. Aerospike使用介绍
  10. 2023年上半年 软件设计师 上午试卷及答案