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.
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.
Plus tard, j'ai lu le document, comme suit :
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, 'SimpleXMLElement', 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; } } } ?>
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!