>  기사  >  백엔드 개발  >  WeChat 공개 플랫폼에서 개발자 모드 활성화 및 자동 응답

WeChat 공개 플랫폼에서 개발자 모드 활성화 및 자동 응답

不言
不言원래의
2018-04-19 15:58:403156검색

이 글에서는 WeChat 공개 플랫폼의 개발자 모드 활성화 및 자동 응답에 대해 소개합니다. 이제 이를 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

우선 개발자란 무엇인가요? 방법?

개발자 모드는 먼저 서버 주소를 확인하는 것입니다. 확인이 완료된 후 사용자가 WeChat 공식 계정으로 메시지를 보내면 WeChat은 WeChat 사용자의 메시지를 이 주소로 전달합니다. 서버가 데이터를 받은 후, 프로그램을 직접 설계하여 결과를 출력하면 WeChat 서버가 사용자에게 결과를 반환합니다.

개인 학습 및 발전을 위해 테스트 계정을 사용하는 것이 좋습니다.

WeChat 테스트 계정 주소: http://mp.weixin.qq.com/debug/cgi-bin /sandbox?t=sandbox /login

로그인 후 인터페이스 구성정보에 방금 생성된 URL 주소와 Token을 입력하세요.

URL 주소는 2차 도메인 이름 주소입니다.

토큰은 프로그램에서 weixin으로 고정되어 있습니다

입력하고 제출하면 구성이 성공했다는 메시지가 표시됩니다!

"토큰 확인 실패" 메시지가 여러 번 표시되는 경우.

<?php

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->run();

class wechatCallbackapiTest
{
	public function run(){
        if($this->checkSignature() == false){
            die("非法请求");
        }
        if(isset($_GET["echostr"])){
            $echoStr = $_GET["echostr"];
            echo $echoStr;
            exit;
        }else{
            $this->responseMsg();
        }
    }

    public function responseMsg(){
		//get post data, May be due to the different environments
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
		// $postStr = file_get_contents("php://input");
		file_put_contents(&#39;msg.txt&#39;,$postStr, FILE_APPEND);
		
      	//extract post data
		if (!empty($postStr)){
              	$postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $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(!empty($keyword)){
              		$msgType = "text";
                	$contentStr = "你好!";
                	// $contentStr = "hi!";
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }else{
                	echo "Input something...";
                }
        }else {
        	echo "";
        	exit;
        }
    }
		
	private function checkSignature(){
        $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 true;
		}else{
			return false;
		}
	}
}

?>

관련 추천:

PHP WeChat 개발을 위한 자동 텍스트 답장

PHP WeChat 개발을 위한 자동 답장


위 내용은 WeChat 공개 플랫폼에서 개발자 모드 활성화 및 자동 응답의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.