1. 程式人生 > >微信公眾號開發學習(1)_____開通微信公眾測試號

微信公眾號開發學習(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("簽名校驗失敗.");
}

至此,微信公眾測試號開通成功,伺服器基本配置完成!(伺服器能接收微信資料)