第一步:添加服務器配置git
第二步:驗證來自微信服務器的消息數組
@RequestMapping("/weixin") @Controller public class WeixinController { @Autowired private WeixinService wxService; /** * 微信接入 * @param signature * @param timestamp * @param nonce * @param echostr * @return */ @RequestMapping("/check") @ResponseBody public String checkSignature(@RequestParam String signature, @RequestParam String timestamp, @RequestParam String nonce, @RequestParam String echostr) { return wxService.checkSignature(signature, timestamp, nonce, echostr); } }
public interface WeixinService { public String checkSignature(String signature,String timestamp,String nonce,String echostr); }
@Service public class WeixinServiceImpl implements WeixinService { /** * 微信接入 */ @Override public String checkSignature(String signature, String timestamp, String nonce, String echostr) { if (CheckUtil.checkSignature(signature, timestamp, nonce)) { return echostr; } ; return null; } }
public class CheckUtil { public static final String tooken = "xiang"; //開發者自行定義Tooken public static boolean checkSignature(String signature,String timestamp,String nonce){ //1.定義數組存放tooken,timestamp,nonce String[] arr = {tooken,timestamp,nonce}; //2.對數組進行排序 Arrays.sort(arr); //3.生成字符串 StringBuffer sb = new StringBuffer(); for(String s : arr){ sb.append(s); } //4.sha1加密,網上均有現成代碼 String temp = getSha1(sb.toString()); //5.將加密後的字符串,與微信傳來的加密簽名比較,返回結果 return temp.equals(signature); } public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char buf[] = new char[j*2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { return null; } } }
你們以爲不錯的話 能夠支持一下服務器