Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?

Was soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?

coldplay.xixi
coldplay.xixiOriginal
2020-07-10 11:54:253701Durchsuche

Lösung für den Fehler bei der PHP-Token-Überprüfung: 1. Stellen Sie sicher, dass der hinzugefügte Server China Unicom ist und die URL zugänglich ist. 2. Das Token kann nicht wiederholt werden. 3. Wenn das Token auf dem Server geändert werden muss. Es muss mit dem auf dem Konfigurationsformular übereinstimmen.

Was soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?

Lösung für den Fehler bei der PHP-Token-Überprüfung:

Hier finden Sie das Konfigurationsformular und Informationen zum Fehler bei der Token-Überprüfung.

Was soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?

Später las ich das Dokument wie folgt:

Was soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?

Um Parameter an WeChat zurückzugeben, wenn die Rückkehr ist erfolgreich, es wird Entwickler;

Also habe ich etwas Code vorbereitet

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;
        }
    }
}
 
?>

Solange zwei Bedingungen erforderlich sind, kann die Überprüfung erfolgreich sein

1. Ihr Server muss Ja sein, er stellt sicher, dass auf Ihre URL zugegriffen werden kann.

2. Es ist am besten, das Token nicht mit anderen zu duplizieren.

3. Das Token auf dem Server muss mit dem auf dem Konfigurationsformular identisch sein. und sie können entsprechen

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die PHP-Token-Überprüfung fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn