JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

PHPz
풀어 주다: 2017-04-04 10:32:40
원래의
1787명이 탐색했습니다.

1. 초기 위챗 공개 플랫폼

우리가 흔히 '공용 계정'이라고 부르는 위챗 공개 플랫폼은 한때 '공식 플랫폼', '미디어 플랫폼'으로 명명되었으나 최종적으로 이름이 바뀌었습니다. "공용 플랫폼". 위챗이라는 이름에서 공공 플랫폼은 단순히 관료나 언론이 사용하는 플랫폼이 아니라 모든 대중에게 열려 있는 통합 플랫폼임을 알 수 있다.

WeChat 공개 플랫폼 주소: https://mp.weixin.qq.com/

WeChat 공개 플랫폼에는 구독 계정, 서비스 계정, 미니 프로그램, 기업 계정의 네 가지 주요 섹션이 있습니다. WeChat의 2016년 공개 수업 계획에 따르면 Enterprise Account는 향후 Enterprise WeChat과 통합될 예정이므로 처음 세 부분을 중심으로 설명하겠습니다.

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

WeChat 플랫폼의 4가지 주요 섹션

처음 3개 섹션과 이번 강좌 및 이후 강좌의 주요 차이점에 대한 간략한 비교:

1. 구독 계정과 서비스 계정은 모두입니다. 전통적인 의미의 "공개 계정"입니다. 그룹 메시징 기능의 경우 공식 플랫폼(http://kf.qq.com/faq/140806zARbmm140826M36RJF.html)에서 자세한 차이점을 확인할 수 있습니다. 서비스 측면에서 서비스 계정이 더 많은 서비스인터페이스를 사용할 수 있고 구독 계정이 "거세된" 서비스 계정이라는 점을 제외하면 둘의 개발 모델은 완전히 동일합니다. 따라서 후속 과정에서는 서비스 번호를 사용하여 사례를 운영할 것입니다.

2. 원래 "위챗 애플리케이션 계정"인 위챗 애플릿은 위챗 생태계에 뿌리를 둔 APP입니다. Apple과 Google의 제한으로 인해 "앱 계정"은 출시되기 전에 종료되었으며 기능이 적당히 약화되는 "WeChat 미니 프로그램"으로 대체되었습니다. 운영 환경은 기본 앱과 비슷하여 미니 프로그램을 만들었습니다. 요즘 인기있는 개발 방향. Jerry Education의 새로운 H5 개발 과정에는 인기 있는 WeChat 미니 프로그램 개발도 포함됩니다.

2. 계정 개발 준비

1. 계정 등록

위챗 공개 플랫폼 https://mp.weixin.qq.com 그리고 오른쪽 상단의 지금 등록을 클릭하고 "서비스 계정" 또는 "구독 계정"을 선택하여 등록하세요. (서비스 계정은 기관만 사용할 수 있습니다. 사용자 등록, 개인 사용자는 구독 계정만 선택할 수 있습니다.)

등록 시 하나를 입력해야 합니다. 안내에 따라 시리즈 정보만 입력하면 되며 여기서는 자세히 설명하지 않습니다.

2. 테스트 계정 신청

당분간 계정 등록을 원하지 않거나, 서비스 계정 등록이 불가능한 경우, 공식 테스트 계정을 선택하여 신청하실 수 있습니다. . 애플리케이션 주소: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login QR 코드를 클릭하고 스캔하면 서비스 계정의 모든 권한이 포함된 테스트 계정을 얻을 수 있습니다.

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

테스트 계정 인터페이스

3. 개발 환경 준비

1.

WeChat 공개 플랫폼이 백엔드에 액세스할 때 올바르게 액세스할 수 있는 외부 네트워크 주소를 제공해야 합니다. WeChat 플랫폼에는 백엔드 URL에 대한 두 가지 요구 사항이 있습니다.

① 공용 네트워크를 사용할 수 있어야 합니다. 액세스 ②는 포트 80을 사용해야 합니다.

위의 두 가지 사항을 달성하려면 Alibaba Cloud, Baidu Cloud, Tencent Cloud와 같은 외부 네트워크 서버를 구입하도록 선택할 수 있습니다. ... 모두 좋은 선택입니다. 서버가 없는 경우 외부 네트워크 매핑 도구를 사용하여 내부 네트워크 링크를 공용 네트워크에 매핑할 수 있습니다. 좋은 매핑 소프트웨어로는 땅콩 쉘, ngrok, nat123 등이 있습니다.

이 소프트웨어는 모두 사용할 수 있습니다. Baidu에서 검색하여 쉽게 다운로드할 수 있습니다. 사용 방법에 대한 간략한 설명은 다음과 같습니다.

① Ngrock:

dos 환경으로 들어가서 ngrock이 있는 디스크로 전환하고 기호, ngrock8080을 입력하고 Enter를 누르세요:

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

ngrock 작업

Enter를 누르고 잠시 기다리면 아래 그림과 같이 공용 네트워크 링크를 얻을 수 있습니다. 음영 처리된 영역에 제공된 링크를 표시하면 로컬 머신 127.0.0.1:8080 아래의 링크 콘텐츠에 직접 액세스할 수 있습니다. http 프로토콜과 https 프로토콜에 해당하는 주소는 다음과 같습니다.

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

ngrock 작업 성공 인터페이스

②Peanut shell, nat123 소프트웨어를 설치하고 소프트웨어에서 실행할 수 있습니다. 자세한 내용은 Baidu 경험을 확인하세요. http: //jingyan.baidu.com/article/363872ec361d3f6e4ba16ff9.html 자세한 내용은 다루지 않겠습니다. 여기

4. WeChat 공개 플랫폼 데이터 상호 작용 원리

공용 네트워크 액세스 주소를 설정한 후 자체 개발했습니다. 배경 코드는 공용 네트워크 주소에 배치할 수 있으므로 사용자는 어떻게 해야 합니까? 우리 코드에 접근하시겠습니까?

WeChat 공개 플랫폼의 데이터 상호작용 원리를 살펴보겠습니다.

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근


에서 볼 수 있듯이 위 그림에서 WeChat 공개 플랫폼은 실제로 비즈니스를 처리하고 서비스를 제공하는 코드는 여전히 자체 서버 또는 공개 네트워크 매핑에 배치되어 있습니다.

그런 다음 자체 컴퓨터(서버)에 백엔드 코드를 작성하고 매핑 도구를 통해 공용 네트워크에서 액세스할 수 있는 URL을 제공한 다음 이 URL을 WeChat 백엔드에 바인딩할 수 있습니다.

5. 개발 모드 액세스

실제 개발 과정은 아래에서 확인할 수 있습니다: https://mp.weixin.qq.com/wiki

1. 서버 구성을 입력합니다

WeChat 공개 플랫폼에 진입한 후 왼쪽의 [개발 - 기본 구성]을 클릭한 후 [서버 구성]을 선택합니다. 구성 페이지에 들어갈 수 있습니다:

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

WeChat 플랫폼 서버 구성

그중:

URL: that 위에서 언급한 백엔드 서버 공용 네트워크 접속 주소

토큰: 개발자 맞춤형 인증 비밀번호

EncodingAES: 무작위 문자열 , if The 메시지 암호화 및 복호화 방법은 안전 모드를 채택합니다. 확인만 필요합니다

2. 메시지가 유효한지 확인합니다.

제출을 클릭하면 WeChat 서버가 Get 요청을 보내고 위 주소로 이동하여 4개의 매개변수를 동시에 전달합니다:

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

WeChat Server Get요청 매개변수

통과 요청을 확인하려면 서명을 확인하세요. (확인 방법은 아래와 같습니다.) 본 GET 요청이 위챗 서버에서 오는 것이 확인되면 echostr 매개변수 내용을 그대로 반환해 주셔야 접속이 적용되어 개발자가 되며, 그렇지 않으면 접속이 실패됩니다. . 암호화/검증 과정은 다음과 같습니다.

다음으로 코드 연산을 구현합니다.

6. 백엔드 코드 개발 및 액세스

1. MyEclipse를 사용하여 웹 프로젝트를 생성하고 새로운 서블릿을 생성합니다.

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

새 서블릿 생성

2. 서블릿의 doGet 메서드에서 위의 4가지 확인 매개변수를 가져옵니다. :

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

위의 4가지 검증 매개변수를 가져옵니다

3. 검증 방법을 작동하는 도구 클래스를 작성합니다. 🎜 >

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

쓰기 도구 클래스

검증 단계는 위의 [5-2] 3단계 작업 프로세스를 참조하세요

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

확인 단계

sha1 암호화 방법 사용 ↓

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

sha1 암호화 방법

4. 서블릿에서 확인 방법을 호출하여 결과를 확인합니다. 확인에 성공하면 얻은 임의 문자열 eahostr이 WeChat 플랫폼으로 반환됩니다. 원래 방식:

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

서블릿에서 확인 메서드 호출

이 시점에서 Servlet 및 Check 도구 클래스가 완료되었습니다.

5. Tomcat을 시작하고 서블릿의 로컬 주소(예: localhost:8080/WeiXin/servlet/WeiXinServlet)를 공용 네트워크에 매핑합니다. 위의 세 번째 부분에서는 공용 네트워크 매핑을 수행하여 공용 네트워크 주소에 올바르게 액세스할 수 있는지 확인합니다.

공용서버에 코드를 직접 올려서 접속하겠습니다. 다음 주소를 받으세요

7. 공개 플랫폼 백엔드 구성

WeChat 백엔드 구성 관련 정보 입력:

JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근

WeChat 백엔드 구성 관련 정보

8. 소스 코드 공유

1. 서블릿 소스 코드(doGet 부분만 유지):

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
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);
}
}
로그인 후 복사
2. 직접

복사getSha1 암호화 방법 가능):

package com.jredu.util;
import java.security.MessageDigest;
import java.util.Arrays;
public class CheckUtil {
public static final String  tooken = "jredu100"; //开发者自行定义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];}
로그인 후 복사
char hexDigits[] = {&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;,
&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;};
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;
}
}
}
로그인 후 복사

위 내용은 JAVA를 활용한 WeChat 공개 플랫폼 개발 (1) - 환경 구축 및 개발 접근의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿