解决微信公众号服务器配置问题
今天花了一天时间给给公众号开发了一点小功能:
因为之前有过开发公众号的经历,本来以为会没啥问题的。功能大概完成后,准备部署到服务器,在微信后台配置服务器时token校验一直通不过,开发文档看了又看,一直看不出啥问题,本地测试也是预期结果。
折腾了几个小时,人都要裂开
@JSON
@PostRoute("/usermsg")
public String userMsg(@Param(name = "signature") String signature,
@Param(name = "timestamp") String timestamp,
@Param(name = "nonce") String nonce,
@Param(name = "echostr") String echostr) {
if (SignUtil.checkSignature(signature, timestamp, nonce)) {
return echostr;
}
return "error";
}
最后,一篇博客的评论中发现了解决办法:
@PostRoute("/usermsg")
public void userMsg(@Param(name = "signature") String signature,
@Param(name = "timestamp") String timestamp,
@Param(name = "nonce") String nonce,
@Param(name = "echostr") String echostr,
Response response) {
String result = "error";
if (SignUtil.checkSignature(signature, timestamp, nonce)) {
result = echostr;
}
response.text(result);
}
重新部署,问题解决
最后安利一个Java MVC框架(https://github.com/lets-blade/blade),不同于Spring Boot,这个框架非常非常的轻量,基于netty 4,相比于Spring Boot打包后随随便便上百MB,它打包后之后十几MB
-rw-rw-r-- 1 sairo sairo 17M 5月 8 19:33 target/wechat-msg-1.0-SNAPSHOT-jar-with-dependencies.jar
学习成本也非常低,大概三四个小时就可以学会。
至于笔者为什么选择它,主要原因是服务器配置低,Spring Boot太重,性能上带不动。根本原因是穷~~
参考资料
https://github.com/lets-blade/blade/blob/master/README_CN.md
https://blog.csdn.net/chmod_R_755/article/details/75554735
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
https://blog.csdn.net/Thinkingcao/article/details/106677413
https://github.com/Wechat-Group/WxJava