java获取微信用户信息(UnionID)

2023-11-05

本篇主要是针对用户关注公众号 然后利用接口获取用户的信息包括unionid信息

首先就是获取微信access_token的值,官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

然后调用获取用户信息接口url:https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

下面贴代码

			// 获取access_token 如果看不懂可看:https://blog.csdn.net/lady132/article/details/88871049
			String access_token = AccessTokenInfo.accessToken.getAccessToken();
			// 通过前端code参数得到code
			String code = request.getParameter("code");
			// 获取用户的openid  APPID 和code 就是微信公众号的账号信息
			String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + APPID + "&secret=" + SECRET
					+ "&code=" + code + "&grant_type=authorization_code";

			// 调用请求方法
			String json = urlToJson(url);
			// 转换为json格式
			JSONObject json1 = JSONObject.parseObject(json.toString());

			try {
				// 获取用户的openid
				String open_id = json1.get("openid").toString();

				// 获取用户基本信息(用户必须以关注公众号) 用户授权请求的地址:
				// https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
				// 关注公众号获取用户unionid:https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
				url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + access_token + "&openid=" + open_id
						+ "&lang=zh_CN";
				//获取返回的用户信息
				json = urlToJson(url);
				//打印用户信息
				System.out.println("公众号用户信息:" + json);
				
			} catch (Exception e) {
				System.out.println(e);
			}

			/**
			* 对url发送请求并获取返回的数据
			 * 
			 * @param url
			 * @return
			 */
			public String urlToJson(String url) {
				StringBuffer json1 = new StringBuffer();
				try {
					URL oracle = new URL(url);
					URLConnection yc = oracle.openConnection();
					BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "utf-8"));
					String inputLine = null;
					// StringBuffer json1 = new StringBuffer();
					while ((inputLine = in.readLine()) != null) {
						json1.append(inputLine);
					}
				} catch (Exception e) {
					System.out.println(e);
				}
				return json1.toString();
			}

搞定收工!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java获取微信用户信息(UnionID) 的相关文章

  • 火到爆的扩散模型(Diffusion Model)帮你具象化幻想世界

    Diffusion Model 如果你对人工智能有所了解 想必已经听说过Diffusion Model了 如果还没有 那就一起来了解一下吧 扩散 Diffusion 对于人能智能而言 是一个借用的概念 在热力学中 它指细小颗粒从高密度区域扩
  • 共享虚拟机(VM)教程

    vmware提供的共享虚拟机服务 我搜索了一下基本没有教程教你怎么用和注意事项的 所以我摸索了做了一个 仅供参考 1 VM共享虚拟机是什么 VMware共享虚拟机是基于局域网的云虚拟化操作系统 不是指虚拟机和主机共享文件网络 2 VM共享虚
  • 软件系统设计步骤与原理

    软件系统设计步骤与原理 在系统分析阶段 我们已经搞清楚了系统做什么的问题 其中最主要的是需求分析 确定用户需求 功能需求 系统性能 系统安全等方面的需求 数据流图 可以确定数据需求与转换过程 那么在系统设计阶段 就是着手实现需求的过程 即解
  • Qt 数据库 bindValue()使用方法

    使用数据库时 有很多种添加数据到数据库的方法 我这里使用的是变量传递数据 q prepare INSERT INTO CAN3 eDevID eMeaning eType eCurrentValue eDescrible ePermissi
  • idea中生成方法注释

    Description TODO Author YourName Date DATE 如果想在IDEA中生成类似上述的注释 那么可以先输入 再单击Enter键即可
  • jeeplus mysql_2.jeeplus源码-项目部署文档.docx

    项目部署文档官方网址 作者 lgf更新日期 2016 5 9开发工具 eclipse myeclipse mysql oracle tomcat6 7 8 打开eclipse右键 gt Import gt 选择如图 gt 选择工程 fini
  • c++vector查找元素所在的索引下标

    find函数 include
  • Java中的多线程(创建方式、安全问题、同步、死锁)

    学习笔记 多线程 简述 进程 正在进行中的程序 直译 线程 就是进程中一个负责程序执行的控制单元 执行路径 一个进程中可以有多个执行路径 称之为多线程 一个进程中至少要有一个线程 开启多个线程是为了同时运行多部分代码 每一个线程都有自己运行
  • python模块导入与模块包导入

    一 import 如何工作 main py程序第一次导入指定文件mod py时 执行 找到模块文件mod py 编译成字节码 可选 执行 pyc字节码 创建mod py中定义的对象 导入模块后 模块对象会被存储在sys modules的表中
  • 使用yum info查看软件包信息与常用软件包

    记录 357 场景 在CentOS 7 9操作系统上 使用yum info查看软件包信息 包括软件包名称 适用架构 版本号 发行版 软件大小 仓库名称 概要 URL 许可证 描述 版本 操作系统 CentOS 7 9 1 iptables包
  • CSS的居中

    CSS vertical align 垂直居中 用于设置图片或表单 行内块元素 和文字垂直对齐 行内或行内块元素有效 属性 baseline 默认 元素放置在父元素基线上 top 把元素的顶端与行中最高元素顶端对齐 middle 把此元素放
  • C# -Unity中 params的用法

    1 形式为 方法修饰符 返回类型 方法名 params 类型 变量名 2 不允许将params修饰符与ref和out修饰符组合起来使用 3 与参数数组对应的实参可以是同一类型的数组名 也可以是任意多个与该数组的元素属于同一类型的变量 4 若
  • 2014年6月30日-7月6日(10小时,剩4414小时)

    6月30日 4小时 剩4420小时 上午2小时OSGEARTH源码 下午 DX11书2小时 7月1日 3小时 7月2日 1小时 7月3日 1小时 7月4日 1小时 剩4414小时
  • NoSQL数据库简介

    假如必须支持数量极为庞大的Web用户 而不是像原来那样只需要支持一小部分商户 开发者要求数据库必须能够提供下列几个方面的支持 对大批量读写操作的处理能力 较低的延迟时间和较短的响应时间 较高的数据可用性 关系型数据库很难满足上述需求 对于大
  • dwr反转ajax功能,DWR Reverse Ajax功能实践的要点

    packagecom hhh nms remote importorg apache log4j Logger importjavax servlet ServletContext importorg springframework web
  • https://code.google.com/p/baiduhook/

    https code google com p baiduhook

随机推荐

  • 宝妈怎样边带娃边赚钱?

    越来越多的人开始做自媒体 在家用手机就能做 比较适合那些空闲较多的学生 宝妈 待业的一些小伙伴们 昨天一天发布看书视频收益400多 操作方法并不难 今天这期内容就来把方法分享给粉丝们 如何操作 点个赞继续看 1 文案 1 在平时看的书 报纸
  • PTA1040 有几个PAT

    PTA 1040 有几个PAT 字符串 APPAPT 中包含了两个单词 PAT 其中第一个 PAT 是第 2 位 第 4 位 A 第 6 位 T 第二个 PAT 是第 3 位 第 4 位 A 第 6 位 T 现给定字符串 问一共可以形成多少
  • 机器学习与深度学习入门环境安装

    机器学习与深度学习入门环境安装 1 编程语言 2 开发平台 3 机器学习工具包 4 深度学习框架 1 编程语言 Python 胶水语言 集成度高 简单实用 受众面广 开发者社区和资源丰富 功能强大 十分适合新手入门与科研工作者使用 但运行速
  • C++如何判断变量类型

    C 如何判断变量类型 使用 typeid 判断其类型 需要在编译语言选项中选择 RTTI 编译选项 例子 引用自这里 详情可以看这里 include
  • SyntaxError: Unexpected token o in JSON at position 1

    用JSON parse value 将string对象转换成object对象出错 报错原因 重复转换 由value本身就是object对象引发的 因为value本身就是object对象 此时再使用JSON parse value 方法后返回
  • 亚马逊+纽约大学开源图神经网络框架DGL

    最近 纽约大学 纽约大学上海分校 AWS上海研究院以及AWS MXNet Science Team共同开源了一个面向图神经网络及图机器学习的全新框架 命名为Deep Graph Library DGL 据介绍 这个框架在测试时表现出了良好的
  • cenetOS 系统开机启动服务脚本

    在centos7中增加脚本有两种常用的方法 以脚本autostart sh为例 bin bash description 开机自启脚本 usr local tomcat bin startup sh 启动tomcat 方法一 1 赋予脚本可
  • 去掉xcode源码末尾的空格【转载的这篇还没有具体操作过,希望对大家有用】

    去掉xcode源码末尾的空格 Dec 10th 2011 在用xcode开发的时候 很容易就在行末增加一些空格了 这些空格在上传到review board上后 就会被特别的颜色显示出来 因为一种好的编程风格是说 不应该在行末增加不必要的空格
  • 关于在macOS 12 Monterey上驱动Intel网卡、蓝牙

    前言 相信自从macOS12发布以后 不少黑苹果用户都已经升级 在这一部分用户中又有不少用户使用的是Intel网卡 而升级macOS12后 Intel网卡 蓝牙并不能正常驱动 前一段时间由于电脑问题 其中有3个月我没有使用黑苹果 在前不久
  • 使用JVisualVM远程监控Tomcat

    用JVisualVM连接远程JVM 监控系统运行性能参数 作用 JVM和监控的应用程序运行在不同的服务器上 减轻应用程序的负担 特别是HeapDupm的时候 应用常能够续负担很大 1 为 10 87 40 141 上的 tomcat 配置
  • 网络协议和Netty

    文章标题 网络协议 计算机网络体系结构 OSI 七层模型 TCP IP 模型 TCP IP 协议族 TCP 和 UDP 地址和端口号 端口号的确定 端口号与协议 TCP IP TCP 三次握手 TCP 的三次握手的漏洞 TCP 四次挥手 分
  • 建议办公室的空调上都贴上“最环保健康温度26度”

    建议办公室的空调上都贴上 最环保健康温度26度 早上来到办公室看到办公室的空调上贴着 最环保健康温度26度 公司可以省下一小笔 大家可以健康的环境下工作 看到自已的建议被采纳了 心里美啊 愿有更多的空调能贴上 最环保健康温度26度 转贴 为
  • STM32-cubemx-DMA-UART-笔记(振兴中华)

    原文章 STM32 HAL库 STM32CubeMX教程十一 DMA 串口DMA发送接收 Z小旋的博客 CSDN博客 hal dma include
  • Java—面向对象——类与对象

    目录 一 现有技术解决问题 二 类与对象的关系示意图 三 类和对象的关系与区别 四 对象在内存中的存在形式 五 属性 成员变量 字段 六 如何创建对象 七 如何访问属性 一 现有技术解决问题 单独的定义变量解决 缺点 不利于数据的管理 使用
  • PyCharm连接Docker中的容器(ubuntu)

    一 为什么要用Pycharm链接Docker中的ubuntu 因为在进行深度学习的时候 基于windows系统在开发的过程中 老是出现很多问题 大多数是环境问题 尽管安装了Conda 也不能很好的解决问题 使用ubuntu是最好的选择 二
  • tar命令如何解压指定文件到指定目录下

    举一个例子 解压 a tar gz 包里文件名以 one 开头的文件到 tmp 文件夹下 tar xzv C tmp f a tar gz one
  • FBXSDK2018 plugin for Unity

    1 下载FBXSDK 点击打开链接 2 安装SDK 记住你所安装的目录 3 visualstudio 新建 C 空项目 首先配置 C C 附加包含目录 你安装sdk 路径下的include 4 设置预处理器 假设是Debug x64 WIN
  • 原地逆转链表的多种方案

    原地逆转链表的多种方案 include
  • 正大期货:期货交易规则和操作方法?

    1 实行t 0的交易方式 即投资者当天买入的期货 在当天就能卖出 2 双向交易 即投资者可以进行做多操作 也可以进行做空交易 3 保证金制度 即投资者交易期货需要交纳一定比例的保证金 4 强制平仓制度 即当投资者的保证金不足时 期货公司为了
  • java获取微信用户信息(UnionID)

    本篇主要是针对用户关注公众号 然后利用接口获取用户的信息包括unionid信息 首先就是获取微信access token的值 官方文档 https mp weixin qq com wiki t resource res main id m