java判断微信号是否关注微信公众号

2023-11-12

	public CommonResult validateAttentionWxPublic(String openId) throws Exception {
		CommonResult cr = new CommonResult();
		String accessToken = "";
                String value = <span style="font-family: Arial, Helvetica, sans-serif;">utilRedisDao.getRedisKey(REDIS_KEY_GLOBAL_TOKEN);</span>

		if(StringUtils.equals(<span style="font-family: Arial, Helvetica, sans-serif;">value </span><span style="font-family: Arial, Helvetica, sans-serif;">, "0")){</span>
			String appid = StringUtils.trimToEmpty(WX_APPID);
			String secret = StringUtils.trimToEmpty(WX_SECRET);
			String url = WX_TOKEN_URL+"?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
			logger.info("获取token"+url);
			String tokenResult = HttpUtil.doGetUrl(url);
			logger.info("获取token响应结果"+tokenResult);
			JSONObject obj = JSONObject.fromObject(tokenResult);
			accessToken = obj.getString("access_token");
			utilRedisDao.setRedisKey(REDIS_KEY_GLOBAL_TOKEN, accessToken, 7000);
		}else{
			accessToken = <span style="font-family: Arial, Helvetica, sans-serif;">value </span>;
		}

		String url = "https://api.weixin.qq.com/cgi-bin/user/info"+"?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
		String result = HttpUtil.doGetUrl(url);
		logger.info("获取微信用户信息"+result);
		JSONObject objUserInfo = JSONObject.fromObject(result);
		logger.info("获取微信用户信息返回响应结果:"+objUserInfo.toString());
		if(objUserInfo.containsKey("errcode")){
			cr.setErrorcode(WXTokenConstant.ERROR_TOKEN);
		}else{
			int subscribe = objUserInfo.getInt("subscribe");
			if(subscribe==1){
				cr.setErrorcode(WXTokenConstant.SUBSCRIBE);
			}else{
				cr.setErrorcode(WXTokenConstant.NO_SUBSCRIBE);
			}
		}
		return cr;
	}
public final String REDIS_KEY_GLOBAL_TOKEN="redis_key_global_token"; 

欢迎关注我的公众号进行一起讨论学习:

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

java判断微信号是否关注微信公众号 的相关文章

随机推荐

  • CISCN部分WP-ukfc

    WP ukfc 讲个笑话 华北19进不了决赛 再讲个笑话 27号黑灯 国粹过了300出头 努什么力 不如去海鲜市场 Web unzip L zip bello var www html R zip bello bello php 先传入L文
  • 51单片机在中断响应时,系统不能自动清除哪些中断请求标志?编程时应如何处理?...

    51单片机在中断响应时 系统不会自动清除中断请求标志 因此 程序员需要在编写的中断服务程序中手动清除相应的中断请求标志 这可以通过使用汇编指令或 C 语言函数来实现 在汇编语言中 可以使用 CLR bit 指令来清除某一位 在 C 语言中
  • linux中$0、$?、$*、$@、$#、$$

    0 shell脚本名 1 执行shell脚本传的第一个参数 n 第n个参数 上一条命令的执行状态 0为成功 执行shell脚本传的所有参数 同上 所在命令的PID test sh bin sh echo hello echo filenam
  • 接口测试全流程总结

    接口测试全流程扫盲 接口测试全流程扫盲 扫盲内容 1 什么是接口 2 接口都有哪些类型 3 接口的本质是什么 4 什么是接口测试 5 问什么要做接口测试 6 怎样做接口测试 7 接口测测试点是什么 8 接口测试都要掌握哪些知识 9 其他相关
  • 二进制补码的理解

    正数的原码 反码 补码 负数的原码 反码 补码关系为 原码 正数的原码符号位变为1 反码 正数的原码取反 补码 正数的原码取反加1 补码主要为了计算机进行减法运算 参考1 https www cnblogs com guanjianzhuo
  • 读QT5.7源码(七)QObjectData 和 QObjectPrivate

    在QObject中定义了一个保护权限的成员变量 d ptr protected QScopedPointer
  • docker快速部署java+nginx+mysql运行环境

    docker快速部署java nginx mysql运行环境 我们在工作中会经常遇到快速部署项目的需求 如果采用纯手动搭建将会是一件非常麻烦的事情 尤其是在Linux服务器上 它牵扯到基础环境安装及配置等繁琐的步骤 本文将介绍一种docke
  • 【蓝桥杯每日一练:乘积尾零】

    问题描述 给10行数据 每行有10个整数 请你求出它们的乘积的末尾有多少个零 输入格式 给10行数据 每行有10个整数 输出格式 输出一个整数表示答案 输入样例 5650 4542 3554 473 946 4114 3871 9073 9
  • 网络应急响应流程

    网络应急响应流程及工作内容 What is 应急响应对应的英文是 Incident response或emergency responcse 通常是指一个组织为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措施 当企业发生黑客入
  • 此主机支持 AMD-V,但 AMD-V 处于禁用状态

    此主机支持 AMD V 但 AMD V 处于禁用状态问题解决 文章目录 此主机支持 AMD V 但 AMD V 处于禁用状态问题解决 1 问题原因 2 解决办法 1 问题原因 我win 10 系统电脑安装VMware虚拟机后 在启动虚拟机时
  • python读写文件,和设置文件的字符编码比如utf-8

    一 python打开文件代码如下 f open d test txt w 说明 第一个参数是文件名称 包括路径 第二个参数是打开的模式mode r 只读 缺省 如果文件不存在 则抛出错误 w 只写 如果文件不存在 则自动创建文件 a 附加到
  • java暂存

    public class Main public static void main String args String m Integer toBinaryString 120 System out println m int ss In
  • Linux 搭建Kafka集群,最新教程,细到极致

    大家好呀 今天给大家带来的是 最新版kafka集群的安装教程 希望给小伙伴们一点小小的帮助 注意 提前安装好jdk Jdk安装教程 1 准备安装包 Kafka官网下载 2 kafka安装需要zk 注意 kafka安装版本和zk版本要一致 下
  • 【SpringCloud微服务全家桶学习笔记-服务注册zookeeper/consul】

    SpringCloud微服务全家桶学习笔记 Eureka服务注册 gitee码云仓库 9 其他服务注册框架 1 zookeeper安装与使用 zookeeper需安装在虚拟机上 建议使用CentOS 安装地址如下 zookeeper镜像源
  • 简单聊聊uniapp和uview组件库一起开发

    简单的聊聊uniapp和uview组件库的开发 uniapp是一个基于Vue js的跨平台开发框架 可以同时开发H5 微信小程序 App等多个平台的应用 这样可以减少开发人员的工作量 提高开发效率 官网 https uniapp dclou
  • 功率电感器选型需要考虑哪些参数?

    电感器 Inductor 是能够把电能转化为磁能而存储起来的元件 电感器的结构类似于变压器 但只有一个绕组 电感器具有一定的电感 它只阻碍电流的变化 如果电感器在没有电流通过的状态下 电路接通时它将试图阻碍电流流过它 如果电感器在有电流通过
  • linux漏洞病毒扫描工具,linux病毒扫描工具ClamAV使用

    前言 ClamAV是Linux平台上领先的开源病毒扫描程序 如果你要为Linux桌面或服务器找到一个好的病毒扫描程序 这个应用程序应该是你的首选 它在命令行中运行 可以在Linux服务器和台式机上使用 并且可以很好地消除大量不同类型的恶意软
  • Docker入门之安装Docker

    目录 目录 1 1 前言 2 2 基本概念 3 2 1 仓库 3 2 2 镜像ID和容器ID 3 3 创建网桥 3 4 安装Docker 4 4 1 二进制安装 4 4 1 1 下载安装 4 4 1 2 配置服务 5 4 1 3 启动服务
  • 各种分布式文件系统简介

    常见的分布式文件系统有 GFS HDFS Lustre Ceph GridFS mogileFS TFS FastDFS等 各自适用于不同的领域 它们都不是系统级的分布式文件系统 而是应用级的分布式文件存储服务 Google学术论文 这是众
  • java判断微信号是否关注微信公众号

    public CommonResult validateAttentionWxPublic String openId throws Exception CommonResult cr new CommonResult String acc