1. URL 및 토큰 소개
1. 개발자가 되려면 공용 네트워크 주소(URL)가 있어야 합니다. 네트워크 주소 획득: 다양한 방법: 다른 플랫폼을 사용하거나 서버를 직접 임대할 수 있습니다(애플리케이션을 배포해야 하기 때문에 직접 서버를 임대하는 것이 좋습니다). 공개 인터넷
2. 토큰(마크): 토큰은 마음대로 문자열을 채워 인증 시 사용할 수 있습니다.
3. 인증 프로세스: 개발자가 프로그래밍해야 하므로 애플리케이션이 필요합니다. 개발자 서버에 배포해야 합니다(URL 제공). WeChat이 공용 인터넷의 URL에 액세스하면 WeChat이 일부 데이터를 전송합니다. 그런 다음 이를 암호문과 비교해야 합니다. 서명이 동일하면 echostr을 WeChat 공개 플랫폼으로 반환하세요. 정확하다면 축하합니다. 공개 계정이 개발자 계정이 되었습니다.
2. 확인 흐름도
위챗 공개 플랫폼(개발자 서버 URL)과 토큰에 대한 URL을 제공하셨는데, 아래 그림은 위챗 공개 플랫폼 인증 과정입니다.
위 그림에서 주요 검증 기능은 개발자 서버 측에 있는데, 개발자 서버 측에서 토큰, 타임스탬프, nonce 암호화 인증(sha1 암호화)을 수행할 때 개발자가 위챗 공개 플랫폼에 토큰을 제공합니다. 암호화 결과가 WeChat 공개 플랫폼에서 제공한 서명과 동일하면 echostr을 반환합니다. WeChat 공개 플랫폼에서 echostr 인증을 수행하고 통과하면 공개 계정이 개발자가 됩니다.
3 . 코드 설명
저는 개발 언어로 Python을 사용합니다. 다른 언어를 사용한다면 논리 구조는 비슷하지만 구현이 다릅니다.
@csrf_exempt def wx_valid(request):#提供给微信公众平台的url,微信公众平台请求url时,会执行此方法 '''微信开发者验证,是GET请求;GET 和 POST 区分是认证还是发送消息(发送消息的时候是POST)''' if(request.method == 'GET'): tocken='zainanjing6tocken'#提供给微信公众平台的tocken,可以保持在数据库、文件或者直接硬编码到代码中; if tocken: timestamp = request.GET['timestamp'] nonce = request.GET['nonce'] signature = request.GET['signature'] echostr = request.GET['echostr'] arr = [tocken,timestamp,nonce] arr.sort() data = '' for s in arr : data += s sha1 = hashlib.sha1() #或hashlib.md5() sha1.update(data) _signature = sha1.hexdigest() #生成40位(sha1)或32位(md5)的十六进制字符串 if _signature == signature : return HttpResponse(echostr)#返回 echostr return HttpResponse('error')#返回 error
위는 개발자의 것입니다. 검증 URL과 토큰 로직 프로세스 및 소스 코드를 아래에서 설명하겠습니다.
4. 운영 프로세스
1. 먼저 개발자 서버에 애플리케이션을 배포하고 URL을 제공합니다. Tocken(이 URL은 WeChat 공개 플랫폼에 액세스할 수 있어야 함)
2. WeChat 공개 플랫폼 개발자 모드에 URL과 Tocken을 추가한 후 WeChat 공개 플랫폼은 자동으로 URL을 요청하고 개발자 서버는 데이터 확인(서명 확인)을 통과하면 echostr이 WeChat 공개 플랫폼으로 반환됩니다
3. 개발자 계정이 되고 공개 계정의 모드가 개발자 모드로 조정됩니다. , 사용자가 공개 계정으로 보낸 메시지는 WeChat 공개 플랫폼에서 응답하지 않습니다. WeChat 공개 플랫폼은 메시지를 개발자 서버로 전달하고 개발자 서버는 메시지에 응답합니다
, URL 및 Token 인증이 완료되면 축하합니다. 귀하의 계정은 이미 개발자 계정입니다. 다음 단계는 사용자 메시지에 응답하는 기능을 개발하는 것입니다. 그렇지 않으면 사용자는 아무 것도 받을 수 없습니다. 메시지
위 내용은 WeChat 공개 계정 개발: URL 및 토큰 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!