>백엔드 개발 >PHP 문제 >PHP 토큰 확인에 실패하면 어떻게 해야 합니까?

PHP 토큰 확인에 실패하면 어떻게 해야 합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-10 11:54:253703검색

PHP 토큰 확인 실패에 대한 해결 방법: 1. 추가된 서버가 China Unicom이고 URL에 액세스할 수 있는지 확인하세요. 2. 토큰을 반복할 수 없습니다. 3. 서버의 토큰을 변경해야 하는 경우 일관성이 있어야 합니다. 구성 양식에 있는 것과 함께.

PHP 토큰 확인에 실패하면 어떻게 해야 합니까?

PHP 토큰 확인 실패에 대한 해결 방법:

여기에 첨부된 내용은 구성 양식 및 토큰 확인 실패 정보입니다.

PHP 토큰 확인에 실패하면 어떻게 해야 합니까?

나중에 다음과 같이 문서를 읽었습니다.

PHP 토큰 확인에 실패하면 어떻게 해야 합니까?

매개변수를 WeChat에 반환하려면 반환에 성공하면 개발자가 됩니다.

그래서 코드를 준비했습니다.

respond.php:
<?php
/**
  * wechat php test
  */
 
//define your token
define("TOKEN", "hwqhwq");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
 
class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
 
        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
 
    public function responseMsg()
    {
        //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 
          //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 = "Welcome to wechat world!";
                    $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;
        }
    }
}
 
?>

2가지 조건만으로 인증 가능 Success

1. URL에 접속하려면 서버가 연결되어 있어야 합니다.

둘째, 토큰을 다른 사람과 중복하지 않는 것이 가장 좋습니다.

셋, 서버의 토큰을 변경해야 하며 구성 양식의 토큰과 동일해야 하며 해당

관련 학습 권장 사항: 초보부터 마스터까지 PHP 프로그래밍

위 내용은 PHP 토큰 확인에 실패하면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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