您的位置:首页 > 编程语言 > Java开发

SpringBoot接入微信公众号(测试)整体流程

2018-03-26 17:48 459 查看
第一步:申请一个测试的公众号

来吧,动动你的小手点击这个>>>>>>>>>>测试公众号的申请网址:微信测试公众号入口

第二步:进入了界面是下面这个样子滴












如图中标识的三个地方,1、2、3、分别是URL,Token、JS、我们该怎么填呢,不要急,别关闭页面进入第三步

第三步:在你的IDEA编译软件中启动好一个SpingBoot项目,并且写好一个Conller,一定要能在本机当中访问哦

例如:下图我的效果










第一张图是控制层,是为了返数据的,,不用跟我一样,,但是,,你的服务一定要能在浏览器里面可以访问的!!!!!!一定要在浏览器里面可以访问的!!!!!



第四步:需要大佬们掏钱了

购买域名和穿墙代理的两个东西

点我>>>>>>>只要八块钱>>>>>没有打广告>>>>>好用>>>>NATAPP–开启您的内网穿透之旅

买好了没,大佬们,,,要买二级域名哦,,,,都买了,,才八块,,,弄好的界面是这样的吧,,,,



仔细看人家是怎么配置的,然后把你买的域名啥的都按照上面写的指导配置好,就可以映射到你的本机地址上了,,然后再通过域名+接口名访问试试。如图是我自己试验的结果,快看不是localhost了吧






第五步:买好了域名,就-返回—到刚刚–微信的–页面吧,

按照—-下图—中说的来








第六步:回到—你的—IDEA—编辑器中

建立一个Controller,,以下是我的Controller,,直接复制代码就好

package com.imcoo.sell.conntroller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

@RestController
public class Test {

private String TOKEN = "good";

@GetMapping("/sell/test")
public String test(@RequestParam("signature") String signature,
@RequestParam("timestamp") String timestamp,
@RequestParam("nonce") String nonce,
@RequestParam("echostr") String echostr) {

//排序
String sortString = sort(TOKEN, timestamp, nonce);
//加密
String myString = sha1(sortString);
//校验
if (myString != null && myString != "" && myString.equals(signature)) {
System.out.println("签名校验通过");
//如果检验成功原样返回echostr,微信服务器接收到此输出,才会确认检验完成。
return echostr;
} else {
System.out.println("签名校验失败");
return "";
}
}

public String sort(String token, String timestamp, String nonce) {
String[] strArray = {token, timestamp, nonce};
Arrays.sort(strArray);
StringBuilder sb = new StringBuilder();
for (String str : strArray) {
sb.append(str);
}

return sb.toString();
}

public String sha1(String str) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(str.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
// 字节数组转换为 十六进制 数
for (int i = 0; i < messageDigest.length; i++) {
String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString();

} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}

}


按照上面的写好这个Controller,,然后重启!!!重启!!!重启之后,按照路径访问,控制台报错空指针异常即可,因为是get请求,路径没有带参数,所有会报空指针异常


第七步:回到微信公众号的哪个界面,,,点击提交,,看看是不是可以成功了呢

第八步:填写你的二级域名在那个js框中,,,记得——不带http://!!!!——–不带http://!!!!——不带http://!!!!





完毕!!!!!!!!!

</div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: