如果喜欢花花,不妨点个在看,分享给你同学
登录微信公众平台
链接如下:https://mp.weixin.qq.com/
滑动到底部,打开基本配置
修改公众号开发信息
修改服务器配置
消息加解密因为麻烦,这里直接使用明文,如用于商业,建议使用安全模式
3. 这里不能直接提交.因为微信在提交的时候会验证一遍,所以开始编写服务器代码.
4. 编写代码的第一个步骤就是先看看开发文档,那么我们来看看微信给的文档
我们从接入指南开始看,
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
第一步是填写服务器配置.我们上面已经完成了
第二布是验证请求的来源
参数加密有三个步骤
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
先看看微信官方给出的代码(php)
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
最近刚好接触了springboot.用起来,java不香吗.写起来一样方便
spring: 配置地狱
springboot的优点就是自动装配.不需要写大量xml配置了.全部用start来启用配置.转对于spring.会慢慢更新,扯远了.我们直接看代码里面的注释
package com.huahua.controller;
import com.huahua.service.MessageServiceImpl;
import com.huahua.util.SHAUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
@RestController
public class WxController {
private final String token = "这里填自定义的token,需要对应微信配置的";
@Autowired
MessageServiceImpl messageService;// 这个是自动回复的service.本章节可以忽略
@GetMapping("/wx")
// 这个是本章节的重点.验证请求是否来自微信,防止别人手动请求获取结果
public String token(@RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestParam("signature") String signature,@RequestParam("echostr") String echostr) {
// 创建string数组接收,排序的方法很多
String[] strings = {timestamp, nonce, token};
// java自己提供的排序
Arrays.sort(strings);
String sha1 = SHAUtils.SHA1(strings[0] + strings[1] + strings[2]);
return signature.equals(sha1) ? echostr : "验证失败";
}
/**
* @return
*/
@PostMapping("/wx")
public String autoReply(HttpServletRequest request) throws Exception {
System.out.println("autoReply执行");
// 自动回复,本章节可以忽略
return messageService.newMessageRequest(request);
}
@RequestMapping("/")
public String index() {
// 测试服务器连通,可以忽略
return "爱花花";
}
}
排序
传入数组就会自动把数组排序
springboot项目的打包
1. 首先放服务器上.因为自带tomcat,所以为了避免冲突.修改端口为8083(自定义,跟其他端口不冲突就行)
然后就ok了
2. 打jar包.双击就能自动打包
打包后在如下目录
3.上传服务器测试
通过宝塔或者其他花里胡哨的操作都行
4. 配置域名访问(使用反向代理)
5.运行jar包,这里使用ssh测试,你们想要后台运行可以使用nohup命令,具体你们参考百度把
6. 测试部署
访问配置好的域名,比如我的http://wx,jxwazx.cn
就会发现能访问,实测部分nginx访问时403.这是因为配置问题(原因未知),初步确认时因为没有index文件,代码没问题
7. 之前的微信界面提交
到这里已经配置完毕了
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有