1.1 Анализировать данные обратного вызова WeChat
InputStream inStream = request.getInputStream ();; BytearRayoutputStream outsteam = new BytearRayoutputStream (); Byte [] buffer = new Byte [1024]; int len = 0; while ((len = instream.read (buffer))! len);} outsteam.close ();; instream.close ();/** Получите возврат xml information of wechat call notify_url*/string result = new String (outsteam.tobytearray (), "utf-8");
Результатом является данные XML, возвращаемые обратным вызовом WeChat.
1.2 Разбор данных XML, возвращаемых WeChat
/*** Информация о XML, возвращаемое входящим обратным вызовом WeChat* Возвращает простое значение в форме карты* Dom4j Sackses XML и возвращает пару клавишных клавиш первого уровня. Если в элементе первого уровня есть дети, значение этого узла пуст* @param strxml* @return* @Throws DocumentException*/ @PuppressWarnings ("ravtypes") public static sortedMap <String> dom4jxmlparse (string strxml) thription us DocumentException {sortedMap <string> scrame = new treemp <String, string, string, string, string, string, string, string, string, string, string, string, string, string,); DocumentHelper.parsetext (strxml); element root = doc.getRootelement (); for (iterator iterator = root.elementiterator (); iterator.hasnext ();) {element e = (element) iterator.next (); smap.put (e.getName (), e.getText ()); Возвращает упорядоченные данные формата карты, и значение используется для получения данных с использованием smap.get ("имя поля").
1.3 Проверьте законность версий WeChat.
/***, подписать ли WeChat V3, правила: сортируют по имени параметра AZ, и параметры, которые встречаются с пустыми значениями, не участвуют в подписи* Pass in WeChat, чтобы вернуть данные параметра SortedMap после анализа информации* подтвердить, является ли сообщение законным сообщением, отправленным wechat* @param smile* @param apike. Статический логический iSweChatsign (SortedMap <String, String> Scratch, String apikey) {StringBuffer SB = new StringBuffer (); set es = smoke.EntrySet (); iterator it = es.iterator (); while (it.hasnext ()) {map.entry entry = (map.entry) it.next (); string k = (string) entry.getkey (); string v = (string) entry.getvalue (); if (! ". + "&");}} sb.append ("key =" + apikey);/** Проверенная подпись*/string sign = md5util.md5encode (sb.tostring (), "utf-8"). touppercase ();/** Законодательная подпись, возвращаемая со стороны WeChat*/String valids = ((строка). smap.get ("sign")). touppercase (); return validsign.equals (sign);} Персональные предложения: перед проверкой законности подписи WeChat вы можете сначала определить, являются ли успехи return_code и result_code, возвращаемые WeChat.
Вышеуказанное является законностью данных проверки версии java java v3, представленных вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!