Heim >WeChat-Applet >WeChat-Entwicklung >Java für die WeChat-Entwicklung, um WeChat-Zeitstempel, NonceStr und Signaturmethode zu erhalten
Laut den offiziellen Dokumenten und dem Fallcode sind die oben genannten drei Parameter erforderlich, und die oben genannten drei Parameter werden dann dynamisch abgerufen. Anschließend verwenden wir Java-Code, um die Erfassung gemäß den offiziellen Dokumenten von WeChat zu erreichen Die drei Parameter Zeitstempel, NonceStr und Signatur sind hier nur eine Hauptmethode zum Drucken und Ausgeben. In dieser Lektion wird die Übergabe dieser drei Parameter an die Webseite und der erfolgreiche Aufruf des WeChat-JSAPI nicht implementiert. Die nächste Lektion konzentriert sich auf die Erklärung. .
Zeichencode:
package com.test.util; import java.util.UUID; import java.util.Map; import java.util.HashMap; import java.util.Formatter; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.io.UnsupportedEncodingException; public class Sign { public static void main(String[] args) { String jsapi_ticket =JsapiTicketUtil.getJSApiTicket();; // 注意 URL 一定要动态获取,不能 hardcode String url = "http://www.vxzsk.com/xx/x.do";//url是你请求的一个action或者controller地址,并且方法直接跳转到使用jsapi的jsp界面 Map<String, String> ret = sign(jsapi_ticket, url); for (Map.Entry entry : ret.entrySet()) { System.out.println(entry.getKey() + ", " + entry.getValue()); } }; public static Map<String, String> sign(String jsapi_ticket, String url) { Map<String, String> ret = new HashMap<String, String>(); String nonce_str = create_nonce_str(); String timestamp = create_timestamp(); String string1; String signature = ""; //注意这里参数名必须全部小写,且必须有序 string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + nonce_str + "×tamp=" + timestamp + "&url=" + url; System.out.println(string1); try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(string1.getBytes("UTF-8")); signature = byteToHex(crypt.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } ret.put("url", url); ret.put("jsapi_ticket", jsapi_ticket); ret.put("nonceStr", nonce_str); ret.put("timestamp", timestamp); ret.put("signature", signature); return ret; } private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } private static String create_nonce_str() { return UUID.randomUUID().toString(); } private static String create_timestamp() { return Long.toString(System.currentTimeMillis() / 1000); } } |
16 Die variable URL in der Hauptmethode ist eine von Ihnen angeforderte Aktion oder Controller-Adresse, und die Methode springt mit jsapi
direkt zur JSP-Schnittstelle, um die Tool-Klasse jsapi_ticket abzurufen Code:
|
Das obige ist der detaillierte Inhalt vonJava für die WeChat-Entwicklung, um WeChat-Zeitstempel, NonceStr und Signaturmethode zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!