> 백엔드 개발 > PHP 튜토리얼 > WeChat 개발 구성 파일의 자세한 주석 버전

WeChat 개발 구성 파일의 자세한 주석 버전

WBOY
풀어 주다: 2016-07-29 09:01:45
원래의
1054명이 탐색했습니다.

/**
  * 위챗 PHP 테스트
 */
//토큰 정의
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();// 코드의 11번째 줄에서 클래스를 인스턴스화합니다.
//$wechatObj->valid();//Variable Usage-> 클래스의 valid() 메서드에 액세스합니다. 개발 모드 인터페이스. 이 줄의 기능은 인터페이스를 확인하는 것입니다. 확인 후 주석 처리할 수 있습니다;
$wechatObj->responseMsg();
class wechatCallbackapiTest//객체에 대한 캡슐화 방법인 클래스를 정의합니다. 개발 지향;
{
public function valid()//인터페이스 검증 방법인 valid라는 이름의 공용 메서드를 정의합니다.
{
$echoStr = $_GET["echostr"] ;//WeChat 클라이언트에서 가져오기 $echoStr 변수에 임의의 문자열이 할당됩니다.
                 //유효한 서명, 옵션
                                                    ~                         변수 $echoStr에 할당된 임의의 문자열 문자열의 작동을 완전히 확인합니다. 구성 인터페이스;
          echo $echoStr; > {
//게시물 데이터 가져오기, 클라이언트가 보낸 정보를 얻는 환경이 다르기 때문에 다를 수 있습니다.
$postStr = $GLOBALS ["HTTP_RAW_POST_DATA"];
//게시물 데이터 추출은 사용자 데이터를 구문 분석합니다.
if (!empty($postStr)){//사용자 정보가 비어 있지 않은지 확인합니다.
/* libxml_disable_entity_loader는 XML eXternal Entity Insertion을 방지하려면
가장 좋은 방법은 직접 xml의 유효성을 확인하는 것입니다. */
libxml_disable_entity_loader(true)를 구문 분석하고 변수 $postObj를 할당합니다. simplexml_load_string() 함수는 XML을 구문 분석하는 데 사용됩니다. SimpleXMLElement 매개변수는 새 객체의 클래스입니다. LIBXML_NOCDATA는 CDATA 태그의 텍스트 XML이 구문 분석되지 않음을 나타냅니다.
                      $fromUsername = $postObj->FromUserName;//$fromUsername 변수에 WeChat 클라이언트의 OpenID 할당;
                                                                                                                                       를 통해 🎜>                $keyword = Trim($postObj->Content);//공백 제거 사용자의 WeChat에서 보낸 텍스트 콘텐츠에서 $keyword; $time;
$Event = $postObj->Event;//이것은 이벤트 획득입니다.
$textTpl = "< ;xml>
UserName>
                                                                                                                                                            ]><--WeChat 소스-->
                                   | sgType>
                                                                                        ;
                                                                                                    /xml>"; //XML 형식으로 텍스트를 구성하여 할당합니다. 변수 $textTpl. XML의 형식은 WeChat 콘텐츠의 고정 형식입니다.
IF ($ EVENT == "Subscribe") // 구독은 구독 정보를 받는 것입니다.
{ $ TextTpl = "& LT; XML & GT;
& LT; Tousername & GT; [CDATA [%s]] & lt;/toSername & gt; rname & gt; & lt; ! [[ CDATA[%s]]>
                                                                                                                                                                                                                                           <콘텐츠><<[CDATA [%s]]>
                                                                        주의를 기울이면 무언가로 응답할 수 있습니다.";
$resultStr = sprintf ($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr)
Echo $ ResultStr
} /// 팔로우 후 텍스트 메시지가 자동으로 응답됩니다.
/ / 스위치($ 키워드)
// 대소문자 "" ";
if (! 비어 있음($ 키워드) )
                                                               ​칼라, 캠퍼스 스트리트 뷰, 신입생 등록, 점수 쿼리";//$contentStr은 응답 정보 )는 변수 매개변수 함수입니다. $textTpl에는 5개의 %s가 있으므로 할당에는 5개의 변수가 필요합니다. 이 코드 줄이 핵심이며 sprintf() 함수를 깊이 이해해야 합니다.
                echo $resultStr;//응답 메시지를 출력합니다. 즉, WeChat으로 보냅니다. 테스트 중에 사용됩니다.
        }
        }그렇지 않으면 {
                                                                                                                                  
}
                                   ~ | 공식 문서는 암호화/검증 프로세스입니다. 세 가지 매개변수 토큰, 타임스탬프, Nonce를 사전순으로 정렬하고 개발자가 암호화를 획득한 후 이 세 매개변수 문자열을 하나의 문자열로 연결합니다. , 문자열을 서명과 비교하여 요청이 WeChat에서 온 것임을 나타낼 수 있습니다.
{
// TOKEN을 직접 정의해야 합니다
if (!defined("TOKEN")) {
throw new Exception('TOKEN이 정의되지 않았습니다!');
} $ Signature = $ _get ["Signature"] // 변수에 $ 서명을 제공하기 위해 서명; 🎜> $ timestamp = $ _get ["timeststamp"]; // 타임스탬프는 $timestamp 변수에 할당됩니다.
$nonce = $_GET["nonce"];//사용자 측에서 난수를 가져오고 $nonce;
= Array ($ Token, $ TimestAmp, $ Nonce); // 배열 변수 생성 $ TMPARR
// sort_string 사용 run
sort ($ tmparr, sort_string ); // tmpStr = implode( $tmpArr ); // 사전 정렬;
$tmpStr = sha1( $tmpStr ); //shal 암호화; tmpStr $signature 변수와 동일한 값은 true를 반환하고, 그렇지 않으면 false를 반환합니다.
위는 다양한 측면을 포함하여 WeChat 개발 구성 파일의 상세한 주석 버전을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


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