微信公众号基本配置之服务器配置

news/2025/1/12 19:50:19/

hello各位好,这里是X,今天来玩玩微信公众号,我最近看过很多关于公众号的资料和视频,感觉讲的比较乱,也可能是我个人的问题,而且微信公众号的开发者文档讲的也比较模糊一点,毕竟上面很多例子都讲的不是很全面的
这篇博客作为开篇吧,希望喜欢的朋友多多点赞收藏🥂

文章目录

  • 基本配置
    • 完成的效果
  • 服务器篇
  • 后台开通
    • 验证逻辑
      • 主要用到的依赖
      • 验证的工具类
      • 接口

基本配置

公众号基本配置传送门

完成的效果

在这里插入图片描述

服务器篇

这里很多博主或者视频教程用的可能是express或者XXapp之类的,我觉得还是直接弄真实的就好,不然还需要配置服务器、监听服务器之类的,比较麻烦

🔔🔔🔔(可参考)本项目用到的同款服务器轻量通用型2核4G

准备好服务器后,开通好对应的端口号,不过这里默认应该是开启的,因为微信公众号只接受80或者443端口,这两个端口主要是服务器一般都是开启状态的💇‍♀️💇‍♀️

后台开通

微信公众号开发文档传送门🍊

以下是开发文档截图

在这里插入图片描述

验证逻辑

大致的验证流程:就是你自己定义一个Token,然后写好一个接口(get请求),在这里微信怎么和你进行验证,也就是你怎么知道这个请求是微信发过来的呢?这里的关键就是signature(加密签名),微信会将上面的4个参数传给你,经过你的加密校验后,如果得到的签名和微信传过来的那个签名是一致的,那么就验证成功

主要用到的依赖

   <!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.13</version></dependency><!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.13</version></dependency><dependency>

验证的工具类

package com.xmonster.util;/*** @program: official-account* @description: CheckUtil工具类* @author: xmonster_大魔王* @create: 2022-09-13 22:06**/import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;import java.util.Arrays;/*** 校验的工具类   微信使用*/
@Component
public class CheckUtil {private static final String token = "xmonster"; //这个token值要和服务器配置一致public static boolean checkSignature(String signature, String timestamp, String nonce) {String[] arr = new String[]{token, timestamp, nonce};// 排序Arrays.sort(arr);// 生成字符串StringBuilder content = new StringBuilder();for (int i = 0; i < arr.length; i++) {content.append(arr[i]);}// sha1加密String temp = getSHA1String(content.toString());return temp.equals(signature); // 与微信传递过来的签名进行比较}private static String getSHA1String(String data) {// 使用commons codec生成sha1字符串return DigestUtils.shaHex(data);}
}

接口

package com.xmonster.controller;import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.xmonster.entity.AlarmParamsDTO;
import com.xmonster.service.PushMessageService;
import com.xmonster.util.CheckUtil;
import com.xmonster.util.HttpClientUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;/*** @program: official-account* @description: 微信服务接口* @author: xmonster_大魔王* @create: 2022-09-13 22:05**/
@RestController
@RequestMapping("/weixin")
public class WeixinServlet extends HttpServlet {/*** 微信用户token认证* @param request* @param response* @throws ServletException* @throws IOException*/@Override@RequestMapping(value = "/index", method = {RequestMethod.GET})public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 接收微信服务器以Get请求发送的4个参数String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");PrintWriter out = response.getWriter();if (CheckUtil.checkSignature(signature, timestamp, nonce)) {out.print(echostr);        // 校验通过,原样返回echostr参数内容} else {System.out.println("不是微信发来的请求!");}}
}

到这里我们将这个项目的端口号改为80,然后打成jar包,丢到服务器/home路径

在这里插入图片描述

通过XShell,将这个java项目启动起来就好

启动好了之后我们去微信公众号配置
这个接口用的也是上面的(一一对应哈),token你随便定义就好
在这里插入图片描述

好啦,这里的配置就到这里结束了,保存好之后,退到基本设置,启用它即可~
后续会带来关于微信公众号更多的功能,下期见


http://www.ppmy.cn/news/363176.html

相关文章

Samba服务器配置

Samba服务器配置 一、实训要求 实验环境&#xff1a;客户端win10、服务端RHEL8或CentOS8&#xff08;文件共享&#xff09; john&#xff08;总经理&#xff09; mike、mado&#xff08;市场部maket&#xff09; mela、lily&#xff08;工厂部factory&#xff09; admini…

Web服务器配置管理

作者&#xff1a;敲代码の流川枫 博客主页&#xff1a;流川枫的博客 专栏&#xff1a;和我一起学java 语录&#xff1a;Stay hungry stay foolish 工欲善其事必先利其器&#xff0c;给大家介绍一款超牛的斩获大厂offer利器——牛客网 点击免费注册和我一起刷题吧 文章目录…

DNS服务器配置

一、基本环境 三台可以联网的Centos8&#xff0c;一台配置主DNS&#xff0c;一台配置辅DNS&#xff0c;一台测试&#xff0c;俩台DNS&#xff08;主、辅&#xff09;都需要配置静态IP 二、执行操作过程 2.1主DNS配置。 2.1.0修改主机名DNS su//进入管理员模式 hostname 主…

江苏号XXXXX配置精准推荐接口压力测试报告

江苏号XXXXX 压力测试报告 Prepared by 拟制 Date 日期 2021-08-18 Reviewed by 审核 Date 日期 Approved by 批准 Date 日期 Revision record 修订记录 Date 日期 Revision Version 修订版本 Change Description 修改描述 Author 作者 2021-08-20 1.0…

window Cmake开发环境搭建

背景 最近的项目需要从linux转战至Windows。因为之前的项目都是在linux环境下开发的&#xff0c;代码也是通过CMAKE编译。攻欲善其事&#xff0c;必先利其器。首先要考虑的是如何在Windows环境下使用cmake编译代码。 另外一个就是IDE的选择了&#xff0c;相比于动辄 好几个G的…

CSS常用水平垂直居中的几种方法

CSS常用水平垂直居中的几种方法 1. 子元素相对于父元素绝对定位&#xff0c;子元素top&#xff0c;left设置50%&#xff0c;子元素margin-top和margin-left减去各自宽高的一半2. 子元素相对父元素绝对定位&#xff0c;子元素top&#xff0c;left值为50%&#xff0c;transform&a…

8. WebGPU 平移变换

我们将开始编写与顶点缓冲区文章中的示例类似的代码&#xff0c;但这次将绘制单个 F 而不是一堆圆&#xff0c;并使用索引缓冲区来保持数据更小。 让我们在像素空间而不是裁剪空间中工作&#xff0c;就像 Canvas 2D API 我们将制作一个 F&#xff0c;将从 6 个三角形构建它 …