Maison > développement back-end > Problème PHP > Que dois-je faire si la vérification du jeton php échoue ?

Que dois-je faire si la vérification du jeton php échoue ?

coldplay.xixi
Libérer: 2023-03-02 09:50:02
original
3673 Les gens l'ont consulté

Solution à l'échec de la vérification du jeton PHP : 1. Assurez-vous que le serveur ajouté est China Unicom et que l'URL est accessible ; 2. Le jeton ne peut pas être répété 3. Lorsque le jeton sur le serveur doit être modifié, il doit être le même que celui du formulaire de configuration.

Que dois-je faire si la vérification du jeton php échoue ?

Solution à l'échec de la vérification du jeton php :

Vous trouverez ci-joint le formulaire de configuration et les informations sur l'échec de la vérification du jeton.

Que dois-je faire si la vérification du jeton php échoue ?

Plus tard, j'ai lu le document, comme suit :

Que dois-je faire si la vérification du jeton php échoue ?

Pour renvoyer les paramètres à WeChat, si le le retour est réussi, il devient Développeur

J'ai donc préparé du code

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;
        }
    }
}
 
?>
Copier après la connexion

Tant que deux conditions sont nécessaires, la vérification peut être réussie

1. Votre serveur doit être Oui, il garantit que votre URL est accessible.

2. Il est préférable de ne pas dupliquer le token avec d'autres

3. Le token sur le serveur doit être modifié, il doit être le même que celui sur le formulaire de configuration, et ils peuvent correspondre

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal