Heim > Artikel > Backend-Entwicklung > Lösung für den Fehler bei der Überprüfung des WeChat-Entwicklungstokens
Dieser Artikel beschreibt die Lösung für den Fehler bei der Token-Überprüfung während der WeChat-Entwicklung. Wenn Sie an der WeChat-Entwicklung interessiert sind oder auf einen Fehler bei der Token-Überprüfung gestoßen sind und diesen nicht beheben können, können Sie diesen Artikel lesen! Kommen wir ohne weitere Umschweife zur Sache!
WeChatMiniprogrammkonfigurationToken-Überprüfungsfehler treten normalerweise auf, wenn Nachrichten gesendet werden Dieser Fehler liegt daran, dass auf Ihrer Schnittstellenseite keine korrekten Informationen vorhanden sind Internetnutzer gaben auch einige Lösungen für die WeChat-Schnittstelle, aber einige können erfolgreich konfiguriert werden, andere nicht. Im Folgenden sind zwei Arten von PHP--Schnittstellenüberprüfungs--Codes aufgeführt, die von Internetnutzern bereitgestellt werden und einfacher erfolgreich zu konfigurieren sind.
Codebeispiel eins (meine Verifizierung kann erfolgreich sein):
<?php //1. 将timestamp , nonce , token 按照字典排序 $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = "你自定义的Token值"; $signature = $_GET['signature']; $array = array($timestamp,$nonce,$token); sort($array); //2.将排序后的三个参数拼接后用sha1加密 $tmpstr = implode('',$array); $tmpstr = sha1($tmpstr); //3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信 if($tmpstr == $signature) { echo $_GET['echostr']; exit; }
Codebeispiel zwei:
<?php /** * wechat php test */ //define your token define("TOKEN", "自定义token"); $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; } } } ?>
Wählen Sie einen der beiden oben genannten Beispielcodes zum direkten Hochladen Geben Sie auf Ihrem Server das entsprechende benutzerdefinierte Token (Token) in die URL in der Nachrichtenkonfiguration ein (schreiben Sie die Serveradresse der PHP-Datei in die Serveradresse). Der Nachrichtenverschlüsselungsschlüssel kann zufällig generiert werden Methode. Kompatibilitätsmodus, das Datenformat hängt von Ihren persönlichen Vorlieben ab (Ich habe JSON eingegeben). Dann klicken Sie einfach auf „Senden“. Wenn das folgende Bild angezeigt wird, bedeutet dies, dass die Überprüfung bestanden wurde:
Jeder ist darauf gestoßen Fehler bei der Token-Überprüfung. Schauen Sie sich das an! Helfen Sie dabei, Token-Probleme schneller zu lösen!
Verwandte Empfehlungen:
Detaillierte Erläuterung des Tokens der App-Schnittstelle
So legen Sie die WeChat-Applet-URL und das Token fest
Das obige ist der detaillierte Inhalt vonLösung für den Fehler bei der Überprüfung des WeChat-Entwicklungstokens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!