Spring Boot 2.X 微信公众平台开发之接入

Posted phil jing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 2.X 微信公众平台开发之接入相关的知识,希望对你有一定的参考价值。

声明 : 本系列纯属自己为了学习而编写,均已测试号为例,如果不正之处,恳请指正,谢谢!

接入微信公众平台开发,开发者需要按照如下步骤完成:

1、填写服务器配置

由于只是接入,只需要一个Controller的方法路径 和 定义一个token,可以写在配置文件里

 

2、验证服务器地址的有效性


/**
* 处理微信服务器发来的get请求,进行签名的验证
* <p>
* signature 微信端发来的签名
* timestamp 微信端发来的时间戳
* nonce 微信端发来的随机字符串
* echostr 微信端发来的验证字符串
*/
@GetMapping(value = "wechat")
public void validate(HttpServletRequest request, HttpServletResponse response) throws IOException {
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
IOUtils.write(SignatureUtil.checkSignature(signature, wechatAccountConfig.getToken(), timestamp, nonce) ? echostr : null, response.getOutputStream());
}

/**
* 此处是处理微信服务器的消息转发的
*/
@PostMapping(value = "wechat")
public void processMsg(HttpServletRequest request, HttpServletResponse response) throws Exception {
//调用核心服务类接收处理请求
defaultMsgDispose(request.getInputStream(), response.getOutputStream());
}
 
/**
* SHA1加密 验证签名
*
* @param signature 微信签名
* @param params token,timestamp,nonce
* @return 是否符合
*/
public static boolean checkSignature(String signature, String... params) {
Arrays.sort(params);
String str = StringUtils.join(params);
String sign = DigestUtils.sha1Hex(str);
return Objects.equals(signature, sign);
}

3、依据接口文档实现业务逻辑

具体源码:https://github.com/philjing/my_wechat

以上是关于Spring Boot 2.X 微信公众平台开发之接入的主要内容,如果未能解决你的问题,请参考以下文章

Java微信公众平台开发之生成带参二维码(Spring Boot 2.X)

Spring Boot 2.X 微信公众平台开发 环境说明

spring boot项目之微信支付功能实现详细介绍

spring boot项目之卖家扫码登陆获取openid(微信身份验证id)

武汉微信开发文档之微信公众平台开发

java Spring Cloud+Spring boot+mybatis企业快速开发架构之电子商务 商城源码 分布式商城 微服务商城源码