微信公眾號開發學習(1)_____開通微信公眾測試號
阿新 • • 發佈:2018-12-21
微信公眾號平臺: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("簽名校驗失敗."); }
至此,微信公眾測試號開通成功,伺服器基本配置完成!(伺服器能接收微信資料)