WeChat의 공식 문서와 사례 코드에 따르면 위의 세 가지 매개 변수가 필요하며 위의 세 가지 매개 변수는 동적으로 획득됩니다. 그런 다음 WeChat의 공식 문서에 따라 획득을 달성하기 위해 Java 코드를 사용합니다. 타임스탬프, nonceStr 및 서명의 세 가지 매개변수는 인쇄 및 출력을 위한 주요 방법일 뿐입니다. 이 강의에서는 이 세 가지 매개변수를 웹 페이지에 전달하고 WeChat jsapi를 성공적으로 호출하는 것을 구현하지 않습니다. .
사인 코드:
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); } } 로그인 후 복사 |
16th A 기본 메소드의 변수 url은 요청한 액션 또는 컨트롤러 주소이며 메소드는 jsapi
를 사용하여 jsp 인터페이스로 직접 점프하여 jsapi_ticket 도구 클래스를 얻습니다. 코드:
독자는 코드를 myeclipse 또는 Eclipse에 직접 복사하고 기본 메소드를 실행할 수 있지만 여기에 알림이 있습니다. JsapiTicketUtil에서 access_token을 얻는 방법에서 독자는 자신의 appid와 appsecret을 입력해야 합니다. 위 내용은 WeChat 타임스탬프, nonceStr, 서명 방법을 얻기 위한 WeChat 개발용 Java의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
관련 라벨:
원천:php.cn
이전 기사:WeChat 공개 플랫폼에서 웹 페이지 오른쪽 상단에 메뉴를 표시하고 숨기는 예
다음 기사:현재 클라이언트가 지정된 js 인터페이스를 지원하는지 확인하는 WeChat 개발 방법
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
페이지가 갑자기 CSS나 부트스트랩을 가져올 수 없습니다.
그래서 저는 페이지를 개발 중입니다. 어제 일부 작업을 했는데 잘 작동했고, 오늘은 나머지 작업을 계속했는데 모든 것이 괜찮습니다. 일반 HTML 페이지로 열려고...
에서 2024-04-06 21:58:04
0
1
800
웹 애플리케이션에 버전 정보를 표시하는 모범 사례는 무엇입니까?
웹 애플리케이션을 개발 중입니다. 웹 애플리케이션에 버전 정보를 표시하는 모범 사례는 무엇입니까? 저는 semantic versioning을 사용하고 있고 이미 ...
에서 2024-04-06 19:13:16
0
2
476
Vue3 웹 구성요소 프로덕션 빌드 문제 해결
vue2web 구성요소를 vue3으로 마이그레이션하려고 하는데 프로덕션용 빌드를 생성할 때 문제가 발생합니다. --targetwc와 함께 vue-cli를 사용하고...
에서 2024-04-06 12:43:37
0
1
473
관련 주제
더>
|