생성 과정에는 서명 확인이 필요하며, 이에 대한 설명은 다음과 같습니다.
공개 플랫폼 사용자가 정보를 제출한 후 GET 요청을 통해 입력된 Url에 요청합니다. , 그리고 4개의 매개변수를 가져옵니다:
* 서명 — WeChat 암호화된 서명
* 타임스탬프 — 타임스탬프
* nonce — 임의의 숫자
* echostr — 임의의 문자열
개발자는 서명을 확인하여 URL 액세스의 적법성을 확인합니다. 이 GET 요청이 echostr 매개변수 내용을 그대로 반환하면 액세스가 적용되고, 그렇지 않으면 액세스가 실패합니다. 검증 서명은 개발자가 입력한 토큰 매개변수, 타임스탬프 매개변수 및 논스 매개변수와 결합됩니다. 암호화 프로세스는 다음과 같습니다.
* 토큰, 타임스탬프, 논스의 세 가지 매개변수를 사전순으로 정렬합니다.
* 세 개의 매개변수를 정렬합니다. 매개변수 문자열은 SHA1 암호화를 위해 하나의 문자열로 연결됩니다.
* 개발자가 얻은 암호화된 문자열을 서명과 비교하여 요청이 WeChat에서 시작되었음을 식별할 수 있습니다.
코드:
<? $signature = $_GET['signature']; $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return $_GET['echostr']; }else{ return false; } ?>
그러나 WeChat은 데이터 전송에 json을 사용하지 않습니다.
따라서 XML 데이터를 다음과 같이 로드하려면 simplexml_load_string을 사용해야 합니다. POST 메서드가 urlencode가 아니므로 HTTP_RAW_POST_DATA를 설정하면 데이터를 읽을 수 있습니다.
ToUserName 메시지 수신자의 WeChat ID, 일반적으로 공개 플랫폼 계정 WeChat ID
FromUserName 메시지 보낸 사람의 WeChat ID
CreateTime 메시지 생성 시간
MsgType 문자 메시지는 텍스트
콘텐츠 메시지 내용
<?php $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //符合微信的POST规范 if (!emptyempty($postStr)) { $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); //XML转对象函数,可能最近这一两年入行的不太清楚XML函数 //数据从对象取出 $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $CreateTime = $postObj->CreateTime; $MsgType = $postObj->MsgType; $Content = $postObj->Content; $keyword = trim($postObj->Content); //安全Trim $time = time(); //XML数据体 $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!emptyempty( $keyword )) //如果发信息来了,不是空白POST,微信规定立即回复,不用推送. { $msgType = "text"; //定义类型 $contentStr = "Hello World,I am Tater!"; //回复 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); //记住,Tpl是要载入的 echo $resultStr; //输出,以便微信抓! } else { echo "What are you say!"; //输入信息有问题,提示输入! } } else { echo ""; exit; } ?>
위 내용은 WeChat 인터페이스 개발에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

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