Java+WeChat 공개 계정 개발 프로세스 단계에 대한 자세한 설명
지난 이틀간 위챗 공개계정 개발을 배우고 싶어서 온라인으로 검색해서 연습을 시작했는데, 그 과정에서 여러가지 문제로 인해(설명이 불완전하고, 어떤 글에서는 방법도 모르고 새로운 상수가 뜨기도 했고, 어떻게 해야할지 몰랐습니다.) 어디에 정의되어 있는지, jar 패키지 버전 문제로 인해 하루 동안 고민했습니다.) 여기에 기록하겠습니다.
1. 먼저 Du Niang에서 WeChat 공개 계정을 검색하고 이 페이지로 들어가 등록하세요. (이미 계정이 있는 경우 이 단계를 건너뛰세요.) 그런 다음 Eclipse를 사용하세요. 새 프로젝트를 만들려면 여기에서 웹 프로젝트를 만들고 있습니다. jdk는 1.8이고 tomcat은 8.5입니다.
3. WeChat과 연결을 설정하려면 프로젝트를 만든 후 먼저 새 클래스를 만듭니다. 이름: CheckUtil, 해당 기능은 다음과 같습니다. WeChat에 연결된 확인 도구, 코드는 다음과 같습니다.
import java.security.MessageDigest; import java.util.Arrays; public class CheckUtil { public static final String tooken = "自行定义"; //开发者自行定义Tooken public static boolean checkSignature(String signature,String timestamp,String nonce){ //1.定义数组存放tooken,timestamp,nonce String[] arr = {tooken,timestamp,nonce}; //2.对数组进行排序 Arrays.sort(arr); //3.生成字符串 StringBuffer sb = new StringBuffer(); for(String s : arr){ sb.append(s); } //4.sha1加密,网上均有现成代码 String temp = getSha1(sb.toString()); //5.将加密后的字符串,与微信传来的加密签名比较,返回结果 return temp.equals(signature); } public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char buf[] = new char[j*2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { // TODO: handle exception return null; } } }
4 그런 다음 새 서블릿을 만들고 WeChat에서 GET 요청을 수신하는 doGet 메서드를 다시 작성합니다.
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); PrintWriter out = response.getWriter(); if(CheckUtil.checkSignature(signature, timestamp, nonce)){ //如果校验成功,将得到的随机字符串原路返回 out.print(echostr); } }
6. 돌아가기 운전 후 잠시 기다리면 그림과 같이 음영 처리된 영역에 제공된 링크를 받게 됩니다. 아래 그림은 http 프로토콜과 https 프로토콜에 해당하는 주소인 이 머신의 127.0.0.1:8080 아래 링크 콘텐츠에 직접 액세스할 수 있습니다.
7 위챗 공식 계정 플랫폼에 로그인하세요. 하단에 있는 개발을 클릭하세요. - 기본 구성:
제출 버튼을 클릭하세요. 제출이 성공하면 WeChat이 자체 Backstage에 액세스할 수 있다는 의미입니다.
관련 권장사항:
WeChat 공개 플랫폼 개발을 위한 Java 그래픽 및 텍스트 코드 예시
WeChat 공개 계정 결제 개발(Java) 예시에 대한 자세한 설명
위 내용은 Java+WeChat 공개 계정 개발 프로세스 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java 원격 디버깅의 지속적인 획득에 대한 질문과 답변 원격 디버깅에 Java를 사용할 때 많은 개발자가 어려운 현상을 만날 수 있습니다. 그것...

백엔드 개발에서 계층 구조에 대해 논의합니다. 백엔드 개발에서 계층 구조는 일반적으로 컨트롤러, 서비스 및 DAO 3 계층을 포함한 일반적인 설계 패턴입니다.

그룹 내에서 정렬을 구현하기 위해 이름을 숫자로 변환하는 방법은 무엇입니까? 그룹으로 사용자를 정렬 할 때는 종종 사용자 이름을 숫자로 변환하여 다르게 만들 수 있습니다 ...

Intellij에서 ...

SpringBoot 프로젝트에서 데이터를 전송하기 위해 타사 인터페이스를 호출 할 때 발생하는 어려움은 스프링에 사용됩니다 ...

원사를 통해 pyflink 작업을 제출하려고 할 때 원사에 pyflink 작업을 제출할 때 Python 스크립트를 찾을 수없는 이유를 분석하면 만날 수 있습니다.

개발 프로세스 중에 Java의 엔티티 클래스 주석의 매개 변수를 동적으로 구성하는 방법 개발 프로세스 중에는 종종 다른 환경에 따라 주석 매개 변수를 동적으로 구성해야합니다 ...
