微信小程序> 微信小程序之消息推送配置Token验证失败已解决

微信小程序之消息推送配置Token验证失败已解决

浏览量:827 时间: 来源:qq_27229113

微信小程序配置消息推送的时候一般都会出现Token验证失败的问题,这个错误是因为,你的接口页面还没有反馈正确的信息给微信接口,网友们也给出了一些解决方法,但有些能够配置成功,有些则不然。下面给出网友提供的2种比较容易配置成功的php接口验证代码。

把代码放到可访问的地址

 

代码示例一(我的验证可以成功):

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

示例二

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

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎