微信公众号开发之获取微信用户的openID

(注:openID同一用户同一应用唯一,UnionID同一用户不同应用唯一。不同应用指微信开放平台下的不同用户。)

1、 申请测试号(获得appID、appsecret)

2、 填写服务器配置并验证。

服务端编写接口,参数为(signature,timestamp,nonce,echostr),并原样返回echostr

微信公众号开发之获取微信用户的openID

验证之后,可开通更多公众平台接口功能。

3、 网页授权获取用户基本信息。

3.1、在接口权限表配置授权页面回调域名或ip

微信公众号开发之获取微信用户的openID

3.2、服务端编写接口,该接口为回调页面的[redirect_uri],即确认授权之后页面将跳转至 [redirect_uri]?code=CODE&state=STATE。服务端接收参数CODE值。

3.3、微信用户访问下面链接,授权。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=[redirect_uri]&response_type=code&scope=SCOPE&state=123#wechat_redirect

(scope=snsapi_base,默认授权,直接跳转;scope= snsapi_userinfo,授权再跳转)

微信公众号开发之获取微信用户的openID

3.3、获取code后,请求以下链接,即可返回openID等数据(如下图)。

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

微信公众号开发之获取微信用户的openID

(3、方法二:接收事件推送(事件:关注、取关、扫码、报位置、自定义菜单事件),这些事件触发的时候,会把一个xml数据包(如下图)发送到步骤2配的URL上,在服务端解析即可。

我的代码中用到dom4j解析xml。事件推送以及Token验证共用那个URL。

微信公众号开发之获取微信用户的openID

微信公众号开发之获取微信用户的openID

微信公众号开发之获取微信用户的openID

其中FromUserName即为openID。)

4、获得openID

Original: https://www.cnblogs.com/zhangzongjian/p/4895843.html
Author: zhangzongjian
Title: 微信公众号开发之获取微信用户的openID

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607389/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring事务(三)-事务失效场景

    有时候,我们明明在类或者方法上添加了 @Transactional注解,却发现方法并没有按事务处理。其实,以下场景会导致事务失效。 1、事务方法所在的类没有加载到Spring IO…

    Linux 2023年6月6日
    084
  • python_距离测量

    之所以写这个,其实就是希望能对距离有一些概念,当然这个也是很基础的,不过千里之行始于足下嘛,各种路径算法,比如a*什么的都会用到这个 距离测量有三种方式 1、欧式距离,这个是最常用…

    Linux 2023年6月6日
    087
  • PHP8.1.10手动安装教程及报错解决梳理

    安装php版本8.1.10:https://www.php.net/distributions/php-8.1.10.tar.gz 易错步骤梳理: 1、安装的版本是php8,因此教…

    Linux 2023年6月6日
    085
  • Xshell+Xftp SSH隧道代理

    参考:https://blog.csdn.net/firetreesf/article/details/53287633 Original: https://www.cnblogs…

    Linux 2023年5月28日
    078
  • 使用JMeter和Zabbix进行压力测试

    Zabbix JMeter 目标 reference Zabbix Zabbix区分探针端、服务端、数据库、WEB前端等多个组件,如果你是在企业内使用,尽量使用运维同学搭建好的环境…

    Linux 2023年6月6日
    084
  • WEB自动化-01-Cypress 介绍

    Cypress 介绍 1.1 Cypress 简介 Cypress是一款基于 JavaScript的下一代前端测试工具。可以对浏览器中运行的任何内容进行快速、简单和可靠的测试。Cy…

    Linux 2023年6月7日
    085
  • php+apache环境搭建

    【先安装apache】 1、安装基础环境: yum -y install gcc libxml2 libxml2-devel sqlite-devel libcurl-devel….

    Linux 2023年6月6日
    075
  • CentOS7.6下安装Redis5.0.7

    此次安装是在CentOS7下安装Redis5.0.7 这里下载的&am…

    Linux 2023年5月27日
    064
  • Google Drive, Onedrive, Dropbox green check marks missing; 修复 google 硬盘,同步符号错误

    最近使用google 硬盘的时候,Windows平台总是出现安装后文件夹不能显示同步符号,而mac平台就无上述错误; 我查了一下资料,发现是因为系统安装的同步软件有点多,Windo…

    Linux 2023年6月13日
    091
  • 用go把博客园博客下载到本地Hexo目录下

    找到cookie 直接浏览器F12 巴拉巴拉 直接上代码 用hexo建静态博客的话,go文件在 \source\_posts目录下,run之后将会在此目录下生成cnblogs文件夹…

    Linux 2023年6月7日
    077
  • SpringBoot中通过AOP整合日志文件

    1.SpringBoot中通过AOP整合日志文件 1. 导入相关的依赖 org.springframework.boot spring-boot-starter org.sprin…

    Linux 2023年6月14日
    085
  • 正态分布

    用来计算连续变量的发生率,说的很抽象,简单说就是单独拿出来没什么太大用,但并不是说这个没什么用,相反这个太重要了,这玩意能让你看清世界的真相 先看个图,像这样的线性就是正太分布 正…

    Linux 2023年6月6日
    0103
  • redis 使用lua 生成流水号

    在实际的业务场景中,我们会用到流水号。之前的流水号做法是,使用redis的全局锁。然后对数据库进行更新,数据库更新 这个也会有一些问题,比如对于同一个流水号,多个线程去更新,由于事…

    Linux 2023年5月28日
    083
  • 如何在 pyqt 中解决启用 DPI 缩放后 QIcon 模糊的问题

    问题描述 如今显示器的分辨率越来越高,如果不启用 DPI 缩放,软件的字体和图标在高分屏下就会显得非常小,看得很累人。从 5.6 版本开始,Qt 便能支持 DPI 缩放功能,Qt6…

    Linux 2023年6月7日
    0189
  • Flask聚合函数(基本聚合函数、分组聚合函数、去重聚合函数))

    1.基本聚合函数(sun/count/max/min/avg) 语法 注意:使用db.session.query()括号内必须要写东西,不能空着,不然都不知道从哪张表中查询数据 代…

    Linux 2023年6月8日
    082
  • Linux系统编程—信号捕捉

    前面我们学习了信号产生的几种方式,而对于信号的处理有如下几种方式: 默认处理方式; 忽略; 捕捉。 信号的捕捉,说白了就是抓到一个信号后,执行我们指定的函数,或者执行我们指定的动作…

    Linux 2023年6月14日
    0112
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球