1. Vorwort
Die drei Parameter, die letztendlich für die Überprüfung der WeChat -Schnittstelle verwendet werden:
Als nächstes wird der detaillierte Code, um diese drei Parameter zu erhalten, angegeben. Die Umgebung dieses Artikels ist Eclipse + Maven.
Die in diesem Artikel verwendeten Technologien httpclient, JSON -String, um zu mapieren, SHA1 -Verschlüsselung
2. Das erforderliche JAR -Paket
Die Pakete, von denen Maven abhängt, sind:
1. Httpclient -Paketabhängigkeit
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.3</version></dependency><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version> 4.5.1 </Version> </abhängig>
2. JSON, um verwandte Paketabhängigkeiten zu kartieren
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency><dependency> <groupId>xom</groupId> <artifactId>xom</artifactId> <version>1.2.5</version></dependency>
3. Betriebsergebnisse
4.. Detaillierter Code
Paket com.luo.util; import Java.io.ioException; import Java.io.unsupportedenCodingException; Import Java.security.Messagedigest; Import Java.security.NosuchalgorithmException; java.util.list; import Java.util.map; import Java.util.set; import Java.util.uuid; import net.sf.json.jsonObject; org.apache.http.parseException; import org.apache.http.client.clientProtocolexception; import org.apache.http.client.entity.urlencodedformentity; import.http.client.htttpget; org.apache.http.client.methods.httpurirequest; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.message.basicnamevaluepair; org.apache.http.util.entityutils; public class httpxmlclient {public static String post (String url, map <string, string> params) {Defaulthttpclient httpclient = new Defaultttpclient (); String body = null; Httppost post = Postform (URL, Parames); body = invoke (httpclient, post); httpclient.getConnectionManager (). Shutdown (); Rückkehrkörper; } public static String get (String url) {defaulthttpclient httpclient = new Defaulthttpclient (); String body = null; Httpget get = new httpget (URL); body = invoke (httpclient, get); httpclient.getConnectionManager (). Shutdown (); Rückkehrkörper; } private statische Zeichenfolge invoke (defaulthttpclient httpclient, httpurirequest httppost) {httPesponse response = sendRequest (httpclient, httppost); String body = paseresponse (Antwort); Rückkehrkörper; } private statische String paserePonse (httPresponse -Antwort) {httpentity entity = response.getEntity (); String charSet = entityUtils.getContentCharSet (Entity); String body = null; try {body = entityutils.toString (Entity); } catch (parseException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } Return Body; } private static httPresponse sendRequest (Defaulthttpclient httppclient, httpurirequest httppost) {httpesponse response = null; try {response = httpclient.execute (httpost); } catch (ClientProtocolException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } Rückgabeantwort; } private statische httppost Postform (String -URL, Map <String, String> Params) {httppost httppost = new httppost (url); Liste <NameValuePair> nvps = new ArrayList <NameValuePair> (); Set <string> keyset = params.keyset (); für (String -Schlüssel: Keyset) {nvps.add (new BasicNamevaluePair (Schlüssel, Params.get (Schlüssel))); } try {http.setEntity (neue urlencodedformentity (nvps, http.utf_8)); } catch (unportedenCodingException e) {e.printstacktrace (); } return http; } public static void main (string [] args) {// access_token map <string, string> params = new HashMap <String, String> (); params.put ("corpid", "wx5f24fa0db1819ea2"); params.put ("corpecret", "uqtwzf0bqtl2krhx0Anekjpq8l0ao96LSPSnfctoblrbuypo4DubHMN0_V2JHS-9"); String xml = httpxmlclient.post ("https://qyapi.weixin.qqqq.com/cgi-bin/getToken", Params); JsonObject jsonmap = jsonObject.fromObject (xml); Karte <String, String> map = new HashMap <String, String> (); Iterator <string> it = jsonmap.keys (); while (it.hasnext ()) {String key = (string) it.next (); String u = jsonmap.get (Schlüssel) .ToString (); map.put (Schlüssel, u); } String access_token = map.get ("access_token"); System.out.println ("Access_Token =" + Access_Token); // Ticket params.put ("access_token", access_token); xml = httpxmlclient.post ("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket", Params); JSONMAP = JSONObject.fromObject (xml); map = new Hashmap <String, String> (); it = jsonmap.keys (); while (it.hasnext ()) {String key = (string) it.next (); String u = jsonmap.get (Schlüssel) .ToString (); map.put (Schlüssel, u); } String jsapi_ticket = map.get ("Ticket"); System.out.println ("jsapi_ticket =" + JSAPI_TICKET); // Signature Signature String noncestr = uUid.randomuuid (). ToString (); String timestamp = long.toString (System.currentTimemillis () / 1000); String url = "http://mp.weixin.qq.com"; String str = "jsapi_ticket =" + JSAPI_TICKET + "& NONCESTR =" + NONCESTR + "× TAMP =" + TIMESTAMP + "& url =" + url; // SHA1 Verschlüsselungszeichenfolge Signature = SHA1 (STR); System.out.println ("noncest =" + noncester); System.out.println ("timestamp =" + timestamp); System.out.println ("Signature =" + Signature); // Schließlich, Noncestern, Zeitstempel, Signatur erforderlich, um Wechat JS -Schnittstellenverifizierung zu nennen}/*** @Author: Luo Guohui* @date: 17. Dezember 2015 um 9:24:43 Uhr* @Description: sha, sha1 Encryption* @parameter: strack: strack: stracks sha1 @retret* @retRteurn* @retRteurn* @retRteurn* @retRteurn* @retRteurn* @retRteurn* @retRteurn* @rETRETRET* @RETRETRET* @RETRETRET* @RETRETSRECHT* @RETRETSRECHT* @RETRECTSURT. {try {MessagedIGest digest = java.security.messagedigest .getInstance ("SHA-1"); // Wenn es sich um eine SHA-Verschlüsselung handelt, ändern Sie einfach "SHA-1" in "SHA" in digest.update (str.getBytes ()); Byte MessagedIGest [] = digest.Digest (); // Hex String StringBuffer hexstr = new StringBuffer () erstellen; // Byte -Array in Hexadezimalzahl für (int i = 0; i <MessagedIGest.length; i ++) {String shahex = Integer.TohexString (MessagedIGest [i] & 0xff) konvertieren; if (shahex.length () <2) {hexstr.Append (0); } hexstr.append (shahex); } return hexstr.toString (); } catch (nosuchalgorithmException e) {e.printstacktrace (); } return null; }}5. Projekt -Download
Holen Sie sich Signature -Projekt auf WeChat
Weitere aufregende Inhalte finden Sie auf "Android Wechat Development Tutorial Summary" und "Java Wechat Development Tutorial Summary". Begrüßen Sie alle zum Erlernen und Lesen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.