微信公众号开发学习(1)_____开通微信公众测试号

微信公众号平台:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

appID_______________开发者ID
appsecret____________开发者密码
URL________________服务器地址
Token_______________微信验证口令
域名________________服务器域名


要填写上面的服务器信息必须要配置服务器
(注:微信公众号发送数据给服务器只有接口配置信息提交是GET请求,其余都是POST请求)

1.验证消息的确来自微信服务器

/*设置验证口令*/
final String TOKEN = "gacl";

/*先获取验证数据*/
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");

/*把验证数据排序,再合成一个新的字符串*/
String[] strArray = {token, timestamp, nonce};
Arrays.sort(strArray);
StringBuilder sb = new StringBuilder();
for (String str : strArray) {
    sb.append(str);
}
String sortString = sb.toString()

/*把获得的新字符串按特定格式重新解析*/
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(str.getBytes());
byte messageDigest[] = digest.digest();
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);
}
String mySignature = hexString.toString();

/*判断解析之后的数据与验证数据比较是否吻合*/
if (mySignature != null && mySignature != "" && mySignature.equals(signature)) {
    System.out.println("签名校验通过。");
    response.getWriter().write(echostr);
}else{
    System.out.println("签名校验失败.");
}

至此,微信公众测试号开通成功,服务器基本配置完成!(服务器能接收微信数据)

猜你喜欢

转载自blog.csdn.net/qq_39652227/article/details/82767254