Der vorherige Artikel führte vor, dass wir den Rückrufmodus aktivieren werden. Nach dem Start des Rückrufmodus werden wir die Chat -Funktion implementieren. Normalerweise können Sie mithilfe von WeChat -Chat Textnachrichten, Sprach-, Bilder, Videos usw. senden. Nur einige dieser Funktionen werden hier implementiert, um sie mit allen zu teilen.
1. Stellen Sie eine Verbindung mit dem Wechat Enterprise -Konto her
1. Enterprise -Anwendungen rufen Sie die vom Enterprise -Konto bereitgestellte Schnittstelle an, verwalten oder abfragen Sie die vom Enterprise -Kontohintergrund verwalteten Ressourcen oder senden Sie Nachrichten an Mitglieder usw., die als aktiver Anrufmodus bezeichnet werden.
2. Das Enterprise -Konto überschreitet Nachrichten, die vom Benutzer oder vom Benutzer an die Enterprise -Anwendung ausgelöst werden, und wird von der Enterprise -Anwendung verarbeitet, die als Rückrufmodus bezeichnet wird.
3. Benutzer lesen die von der Enterprise -Anwendung in WeChat gesendete H5 -Seite. Diese Seite kann die von WeChat bereitgestellte native Schnittstelle aufrufen und die Terminalfunktionen für WeChat nutzen, was als JSAPI -Modell bezeichnet wird.
Dies ist im Entwicklungsdokument des WeChat Enterprise -Kontos geschrieben, aber wir verwenden im Allgemeinen die ersten beiden Methoden .
Tatsächlich sind aktive Anrufe und Rückrufe relativ. Dies stammt aus der Perspektive des WeChat -Servers. Der WeChat -Server sendet Nachrichten über ein Unternehmenskonto an den WeChat -Client, bei dem es sich um einen aktiven Anruf handelt. Der WeChat -Client sendet aktiv Nachrichten, um den WeChat -Server aufzurufen. Im Vergleich zum Server ist ein passiver Anruf (Callback).
2. Rufen Sie das vom WeChat Server verarbeitete Datenformat passiv auf
1. Main Tune: Der Server sendet Daten im JSON -Format an den WeChat -Client, und die Daten müssen nicht verschlüsselt werden.
2. Rückruf: Die vom WeChat -Client gesendeten Nachrichten erfordern eine AES -Verschlüsselung, und die vom Server akzeptierten Nachrichten befinden sich im XML -Format.
Diese beiden werden wie folgt durch ein Bild dargestellt:
3. Chat -Prinzipiagramm
Zunächst sendet der WeChat -Client eine Nachricht zur Verarbeitung an den Server. Nachdem die Daten im XML-Format an den Server von Drittanbietern übertragen wurden, konvertiert der Server von Drittanbietern die Daten in das JSON-Format, überträgt sie auf den WeChat-Server und sendet sie an den Client.
4. Code -Implementierung
Mit der obigen Prinzipbasis ist Folgendes der Codeabschnitt
1. Servlet
public void dopost (httpServletRequest request, httpServletResponse-Antwort) löst ServletException aus, iOException {Request.Setcharactercoding ("UTF-8"); response.setcharactercoding ("utf-8"); String msg_signature = request.getParameter ("msg_signature"); String timestamp = request.getParameter ("timestamp"); String nonce = request.getParameter ("nonce"); InputStream inputStream = request.getInputStream (); String postdata = ioutils.toString (InputStream, "UTF-8"); System.out.println (Postdata); String msg = ""; WxBizmsgcrypt wxcpt = null; try {wxcpt = new WxBizmsgcrypt (stoken, sencodingaeskey, scorpid); msg = wxcpt.decryptmsg (msg_signature, timestamp, nonce, postdata); } catch (aesexception e) {e.printstacktrace (); } System.out.println ("msg =" + msg); //Get interface access credentials String accessToken = CommonUtil.getToken("wxe510946434680dab", "eWTaho766INvp4e1MCsz1mHYuT2DAleb62REQ3vsFizhY4vtmwZpKweuxUVh33G0").getAccessToken(); probieren Sie {@SuppressWarnings ("unbenutzt") boolean Flag = chatService1.sendMessage (AccessToken, MSG); } catch (Ausnahme e) {e.printstacktrace (); }} 2. Servic
öffentliche Klasse ChatService1 {public static boolean sendMessage (String AccessToken, String msg) löst Ausnahme aus {boolean flag = false; Karte <String, String> requestmap = messageUtil.parsexml (msg); // SENTER STRING FROMUSERNAME = requestmap.get ("fromuSerername"); // Nachrichtentyp String msgType = requestmap.get ("msgType"); if (msgType.equals (messageUtil.req_message_type_text)) {// Wenn es sich um einen Text -Kundendienstmeldungsstring -Inhalt = RequestMap.get ("Inhalt"); // Nachrichteninhalt der Textnachricht zusammenstellen // Text -Kundendienstmeldung, Parameter 1: Benutzer -ID; Parameter 2: Inhalt gesendet JSONMSG = AdvancedUtil.MaketextCustommessage ("LisHehe | Zhisheng | Zhangwenyuan | lixinjiang", Inhalt); } else if (msgType.equals (messageUtil.req_message_type_image)) {// Das gesendete ist ein Bild string mediasd = requestmap.get ("mediaId"); JSONMSG = AdvancedUtil.MakeImageCustommessage ("Lishhe | Zhisheng | Zhangwenyuan | lixinjiang", mediaId); } else if (msgType.equals (messageUtil.req_message_type_voice)) {string mediaId = requestmap.get ("mediaId"); JSONMSG = AdvancedUtil.MakevoiceCustommessage ("Lishhe | Zhisheng | Zhangwenyuan | lixinjiang", mediaId); } Flag = AdvancedUtil.SendCustommessage (AccessToken, JSONMSG); Rückflagge; }} 3. Werkzeuge
öffentliche Klasse Advancedutil {private statische Logger log = loggerfactory.getLogger (Advancedutil.Class); /*** Assemblierung und Senden von Textnachricht* @return*/public static String maketextCustommessage (String OpenID, String -Inhalt) {content = content.replace ("/" "," /// "); String jsonmsg = "{/" Touser/":/"%s/",/" msgType/":/" text/",/" AgentID/":/"%s/",/" Text/": {/" Inhalt/":/"%S/"}}"; makeImageCustommessage (String OpenID, String MediaId) {String jsonmsg = "{/" Touser/":/"%s/",/" msgtype/":/" image/",/" AgentID/":/"%s/",/" Image/": {/" medias/"%S/"} "}". MediaId); "{/" touser/":/"%s/",/" msgType/":/" voice/",/" AgentID/":/"%s/",/" voice/": {/" media_id/":/"%s/"}}"; 4. Zusammenfassung
Dies erkennt den Empfang und den Druck von Nachrichten. Der Server von Drittanbietern entschlüsselt zuerst und analysiert die empfangenen XML-Daten, erhält den Nachrichtentyp daraus und fördert dann die zugesandte Nachricht und konvertiert sie in das JSON-Format und überträgt sie an den WeChat-Server und sendet an den Client.
Dieser Artikel wurde in "Android Wechat Development Tutorial Summary" zusammengestellt, und "Java Wechat Development Tutorial Summary" begrüßt alle zum Lernen 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.