1. 注册微信公众号
  2. 打开消息推送等权限
  3. 在基本配置中填写相应信息
  4. Java代码
    添加xml解析依赖
<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version>
</dependency>
package cn.web.demo.controller;import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.*;@RequestMapping("wx")
public class WxController {/***开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上.* 开发者通过检验signature对请求进行校验(下面有校验方式)。* 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,* 则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:** 1)将token、timestamp、nonce三个参数进行字典序排序* 2)将三个参数字符串拼接成一个字符串进行sha1加密* 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信* @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。* @param timestamp 时间戳* @param nonce 随机数* @param echostr 随机字符串* @return echostr 随机字符串*/@GetMapping("accept")public String getAccept(String signature,String timestamp,String nonce,String echostr){String token="adsfasdafsd";String[] arr={token,timestamp,nonce};Arrays.sort(arr);StringBuilder stringBuilder=new StringBuilder();for (String s : arr) {stringBuilder.append(s);}if (shaEncode(stringBuilder.toString()).equals(signature)){return echostr;}else {return "校验失败";}}private  String shaEncode(String inStr) {MessageDigest sha = null;try {sha = MessageDigest.getInstance("SHA");} catch (Exception e) {System.out.println(e.toString());e.printStackTrace();return "";}byte[] byteArray = inStr.getBytes(StandardCharsets.UTF_8);byte[] md5Bytes = sha.digest(byteArray);StringBuilder hexValue = new StringBuilder();for (int i = 0; i < md5Bytes.length; i++) {int val = ((int) md5Bytes[i]) & 0xff;if (val < 16) {hexValue.append("0");}hexValue.append(Integer.toHexString(val));}return hexValue.toString();}/*** 验证成功后,微信将会以post的方式向同样的地址发送真正的数据,* 在该接口中才是真正要填写的业务代码* @return 业务处理完毕返回空字符串即可。*/@PostMapping("accept")public String postAccept(HttpServletRequest request) throws IOException {ServletInputStream inputStream = request.getInputStream();Map<String, String> map = xmlInputStreamToMap(inputStream);//这里填写自己的业务处理代码return "";}private static Map<String, String> xmlInputStreamToMap(InputStream inputStream) {if (inputStream == null) return Collections.emptyMap();Map<String, String> map = new HashMap<>();try {// 读取输入流SAXReader reader = new SAXReader();Document document = reader.read(inputStream);// 得到xml根元素Element root = document.getRootElement();// 得到根元素的所有子节点List<Element> elementList = root.elements();// 遍历所有子节点for (Element e : elementList) {map.put(e.getName(), e.getText());}} catch (Exception e) {e.printStackTrace();} finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}return map;}
}

微信公众号后台接收关注事件相关推荐

  1. SpringBoot搭建微信公众号后台(一):消息接收与响应

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 上一篇我们经过接口验证,已经可以与微信的服务器进行通信,错过的可以通过下面链接来进行回顾,这一篇就来实现一个基本的消息接收与响应. SpringB ...

  2. 微信公众号后台服务开发(一):自动消息回复

    微信公众号后台服务开发 简述 微信平台提供的自动回复机制 后台服务开发 配置指定服务器 消息自动回复功能开发 简述 使用Java SpringBoot框架搭建微信工作号后台实现自定义逻辑自动回复 先注 ...

  3. SpringBoot搭建微信公众号后台(零):服务搭建与接口验证

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 前言:从这篇开始小王子将开始一个新的系列内容,从零开始搭建自己的微信公众号后台.内容大致规划为:环境篇,包括用到的工具安装,破解,配置:基础篇,主 ...

  4. 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能

    一.解析微信服务器传来的消息 因为微信服务器发送过来的是xml格式的消息,所以我们可以采用 开源框架dom4j去解析xml . 所用到的jar 包是:dom4j-1.6.1.jar 官网下载地址:ht ...

  5. Yii2.0实现微信公众号后台开发

    2019独角兽企业重金招聘Python工程师标准>>> 研读 微信公众平台开发者文档 ,然后再阅读本文,效果更佳! 接入微信 Yii2后台配置 1.在app/config/param ...

  6. 腾讯云+CentOS 7.2+python:搭建微信公众号后台入门教程

    因为想自己编写微信公众号后台的程序,实现一些小功能,为以后的开发做准备,所以就从零开始,摸索着注册微信公众号,租用服务器,搭建环境进行开发. 简单的搭建过程中也经历了一些波折,踩了不少坑,仅留此文给跟 ...

  7. python公众号教学_Python微信公众号后台开发教程

    本篇文章开启Python开发微信公众号后台 准备: 云服务平台:(我用的是京东云的) 公众号:自己注册一个就行 Git:代码管理平台 了解平台 进入公众号后台,查看开发相关项 基本配置(服务器配置等) ...

  8. 微信公众号开发接收图片消息,获取用户发送图片的media_id

    现在的手机都有拍照功能, 而且人们拍完照后, 喜欢跟朋友分享. 微信公众号也提供了一个功能, 允许你的粉丝在后台回复图片, 你可以通过公众平台提供的api接口, 获取到图片media_id, 然后把图 ...

  9. Python开发微信公众号后台(系列三)

    原文链接:点击打开链接 摘要: 之前有主流的小黄鸡机器人,但是没找到官方的网页版.(小黄鸡提供付费 API )尝试使用http://www.niurenqushi.com/app/simsimi/(虽 ...

最新文章

  1. 随机森林RandomForest挖掘生物标记预测分类
  2. 是把计算机分析和恢复力实测,土木工程测试试题.docx
  3. uc/os中对任务的总体理解
  4. 解析Python中的条件语句和循环语句
  5. 并发下HashMap头插会造成死循环情况说明
  6. Shell——从hello world和echo命令开始
  7. mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...
  8. 如何使用SAP Cloud for Customer OData服务创建Lead
  9. 索引失效的场景(面试)
  10. 扫地机器人湿地_仅仅是打湿地板而已?定价高了,石头扫地机器人的拖地却仍很一般...
  11. 架构如何为业务和技术“服务”(2)
  12. 教你用VC6写热血江湖小外挂
  13. MySQL备份的几种常用方法与恢复步骤
  14. Learn C++学习笔记:第M章—最常用的智能指针:std::unique_ptr std::make_unique
  15. 基于AIX VIOS常用命令整理
  16. 照片识别年龄 php,用OpenCV和深度学习进行年龄识别
  17. 工业4.0智能工厂建设核心:APS高级计划排程
  18. Libvirt网络管理
  19. 【软件技术基础】02
  20. 纸牌游戏梭哈设计制作(C语言)

热门文章

  1. 35了,我该何去何从
  2. PostCSS使用教程
  3. 2021最新 wordpress+xampp+阿里云建站过程(超级详细)
  4. 微信小程序使用mqtt接收和发布信息有时候接收和发送不到的问题
  5. 腾讯QQ到底有多强大?
  6. Winlogon事件通知包
  7. 曾经的经典玄幻小说(-)
  8. 前端页面里面的文件下载 兼容IE10+
  9. 室内空气污染超标,新房装修如何去除甲醛浓度?
  10. CURL 钉钉机器人 JSON 传参