手把手教你搭建自己的微信公众号

2025-05-09 23:38:37 1958世界杯

目录

一、创建账号

二、配置

三、代码实现

四、源码

一、创建账号

微信公众平台

注意这里是个人的,只能选择订阅号

二、配置

这个白名单是允许获取access_token的ip由于个人公众号接口权限有限,所以很多接口也用不到。

可以申请测试账号进行开发地址:微信公众平台

我这里已经申请到账号了,所以直接用正式账号配置的。

三、代码实现

校验连接的接口

package com.wssnail.controller;

import com.wssnail.service.VerifyUrlService;

import com.wssnail.service.WxService;

import com.wssnail.service.impl.VerifyUrlServiceImpl;

import lombok.extern.slf4j.Slf4j;

import org.apache.commons.lang3.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

/**

* @author 熟透的蜗牛

* @version 1.0

* @description: 校验连接的controller, 配置的路径和发送消息是同一个接口

* @date 2022/10/9 21:59

*/

@RestController

@Slf4j

public class WxController {

@Autowired

private VerifyUrlService verifyUrlService;

@Autowired

private WxService wxService;

/**

* @param signature

* @param timestamp

* @param nonce

* @param echostr

* @description: 校验链接,这个接口就是上面配置的自定义接口

* @return: java.lang.String

* @author 熟透的蜗牛

* @date: 2022/10/9 22:00

*/

@GetMapping(value = "/xxx/onWxMsg")

public String checkWxToken(@RequestParam(value = "signature", required = true) String signature,

@RequestParam(value = "timestamp", required = true) String timestamp,

@RequestParam(value = "nonce", required = true) String nonce,

@RequestParam(value = "echostr", required = true) String echostr) throws Exception {

if (StringUtils.isNotEmpty(echostr)) {

// 用于微信校验接口存在性,必须返回echostr

return verifyUrlService.verifyUrl(signature, timestamp, nonce, echostr);

}

//返回echostr,或则success字符串,否则微信公众号识别不出来

return "success";

}

/**

* @description: 获取access_token, 注意服务器的ip一定要加加入白名单,否则获取失败,每天获取次数有限,请自行保存这个token

* @return: java.lang.String

* @author 熟透的蜗牛

* @date: 2022/10/9 22:01

*/

@GetMapping("/getAccessToken")

public String getAccessToken() {

// https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

return wxService.getToken();

}

}

回复消息的接口

package com.wssnail.controller;

import com.wssnail.service.WxOfficeService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/**

*

* 前端控制器

*

*

* @author 熟透的蜗牛

* @since 2022-09-28

*/

@RestController

public class WxOfficeController {

@Autowired

private WxOfficeService wxOfficeService;

/*

* @description: 微信处理消息

* @author: 熟透的蜗牛

* @date: 2022/10/9 17:00

* @param signature

* @param timestamp

* @param nonce

* @param echostr

* @param request

* @return: java.lang.String

**/

@PostMapping(value = "/xxx/onWxMsg", produces = "application/xml;charset=UTF-8")

public String subscribeProcessor(@RequestParam(value = "timestamp", required = false) String timestamp,

@RequestParam(value = "nonce", required = false) String nonce, HttpServletRequest request) {

return wxOfficeService.handleMsg(timestamp, nonce, request);

}

}

四、源码

wssnail-wx-office: 搭建个人微信公众号,修改配置文件为自己的appid等信息即可使用

最新发表
友情链接