发表于: 2017-11-28 23:18:43
1 661
今天完成的任务:
一、完成了微信接入。
接着昨天,接入微信的步骤有三个:这是官网的文档
这里主要就是url的填写,这个url是需要判断的,点击提交之后就会给url发送一个请求,获取一个响应用来验证是不是正确的验证。
所以要做的就是写一个方法,按照要求,
1先将三个参数进行字典排序,
public class AddString {
public static String sort(String token ,String timestamp,String nonce){
String[] str={token,timestamp,nonce};
Arrays.sort(str);
StringBuilder sb=new StringBuilder();
for (String list:str){
sb.append(list);
}
return sb.toString();
}
}
2然后使用sha1加密,
public class Shal {
public static 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 "";
}
}
3去对比加密后的字符串和signature是不是匹配的,如果是匹配的话,那就返回一个echostr,
@Controller
public class wexin {
private final String TOKEN = "chenhao";
private static Logger logger = Logger.getLogger(wexin.class);
@RequestMapping(value = "/check",method = RequestMethod.GET)
public void wechatGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String signature = request.getParameter("signature");//微信加密签名signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
String timestamp = request.getParameter("timestamp");//时间戳
String nonce = request.getParameter("nonce");//随机数
String echostr = request.getParameter("echostr");//随机字符串
//拼接
String sortString = AddString.sort(TOKEN, timestamp, nonce);
//加密
String mySignature = Shal.sha1(sortString);
//校验签名,通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
if (mySignature != null && mySignature != "" && mySignature.equals(signature)) {
//如果检验成功输出echostr,微信服务器接收到此输出,才会确认检验完成。
response.getWriter().println(echostr);
} else {
logger.info("签名不通过");
}}
}
这里判断完了之后一定要返回echostr才可以接入成功。
这样就可以接入微信了。
参考:
https://www.cnblogs.com/xdp-gacl/p/5151857.html
http://blog.csdn.net/u013239111/article/category/6120446
明天计划:
明天学习微信怎么自定义菜单。
遇到问题:
接入微信写代码的时候出了点小问题。解决了。
项目方案评审还遥遥无期。。
收获:
微信接入了吧,了解了一点微信的知识。
评论