이 글에서는 WeChat 개발 중 토큰 확인 실패에 대한 해결 방법을 설명합니다. WeChat 개발에 관심이 있거나 토큰 확인 실패가 발생했지만 해결할 수 없는 경우 이 글을 읽어보세요! 더 이상 고민하지 말고 본론으로 들어가겠습니다!
WeChat미니 프로그램 구성토큰 확인 실패는 일반적으로 메시지를 푸시할 때 발생합니다. 이 오류는 인터페이스 페이지가 아직 WeChat 인터페이스에 올바른 정보를 피드백하지 않았기 때문에 발생합니다. 네티즌들도 몇 가지 해결 방법을 제시했습니다. 하지만 일부는 성공적으로 구성할 수 있고 일부는 그렇지 않습니다. 다음은 네티즌들이 제공하는 두 가지 유형의 php인터페이스 검증 코드로, 비교적 쉽게 구성할 수 있습니다.
코드 예시 1(인증이 성공할 수 있음):
<?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; }
코드 예시 2:
<?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; } } } ?>
위의 두 예시 코드 중 하나를 선택하여 서버에 직접 업로드하고, 메시지 구성 PHP에 URL(서버 주소)을 작성하세요. 파일 서버 주소), 해당 사용자 정의 토큰(토큰)을 입력하고 메시지 암호화 키는 무작위로 생성할 수 있으며 암호화 방법에 대한 호환성 모드를 입력했으며 데이터 형식은 개인 취향에 맞게 입력했습니다(JSON을 입력했습니다) ). 그런 다음 제출을 클릭하세요. 다음 그림이 나타나면 인증이 통과되었음을 의미합니다.
토큰 인증 오류가 발생했다면 확인해 보세요! 토큰 문제를 더 빠르게 해결하도록 도와주세요!
관련 권장사항:
위 내용은 WeChat 개발 토큰 확인 실패에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!