PHP 위 챗 API 인터페이스 클래스

9145 단어 php작은 편지API
본 논문 의 사례 는 여러분 에 게 PHP 위 챗 인터페이스 류 를 공유 하 였 으 며,여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.

<?php
/**
 * wechat php test
 */
 
//define your token
//  TOKEN  
define("TOKEN", "weixin");
 
//       
$wechatObj = new wechatCallbackapiTest();
//       valid  
//$wechatObj->valid();
//        
$wechatObj->responseMsg();
 
 
//     
class wechatCallbackapiTest
{
  //  valid    :          
  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
    //          xml  
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 
    //extract post data
    //  xml      
    if (!empty($postStr)){
        /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
          the best way is to check the validity of xml by yourself */
        libxml_disable_entity_loader(true);
        //  simplexml  xml  
        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        //        
        $fromUsername = $postObj->FromUserName;
        //      
        $toUsername = $postObj->ToUserName;
        //          
        $keyword = trim($postObj->Content);
        //1.        
        $msgType = $postObj -> MsgType;
        //   
        $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($msgType == 'text'){
          if(!empty( $keyword ))
          {
            /*      
              //        
              $msgType = "text";
              //    
              if($keyword == "  "){
                $contentStr = "    ";
              }else{
                $contentStr = "    ";
              }
              //   xml  ,              .fromUsername  Username    ,   %s 
              $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
 
              // xml        
              echo $resultStr;
            */
            if($keyword == "?" || $keyword == "?"){
              $msgType = "text";
              $contentStr = "1.      
2. "; $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; }elseif($keyword == 1){ $msgType = "text"; $contentStr = "1. :110
2. :119
3. :120"; $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; }elseif($keyword == 2){ $msgType = "text"; $contentStr = "1. :10086
2. :10010"; $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; } }else{ echo " "; } } //////////////////////////////////////////////////////////////////////////////////// // if($msgType == "image"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// if($msgType == "voice"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// if($msgType == "video"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// if($msgType == "shortvideo"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// if($msgType == "location"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// if($msgType == "link"){ // $msgType = "text"; // $contentStr = " "; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; } //////////////////////////////////////////////////////////////////////////////////// /* // if(!empty( $keyword )) { // $msgType = "text"; // $contentStr = " , hero"; // $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); // xml echo $resultStr; }else{ echo "Input something..."; } */ }else { echo ""; exit; } } private function checkSignature() { // you must define TOKEN by yourself // TOKEN, if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } $signature = $_GET["signature"];// $timestamp = $_GET["timestamp"];// $nonce = $_GET["nonce"];// $token = TOKEN;// TOKEN $token // $tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rule // sort($tmpArr, SORT_STRING); // $tmpStr = implode( $tmpArr ); // $tmpStr = sha1( $tmpStr ); // if( $tmpStr == $signature ){ // true return true; }else{ // false return false; } } } ?>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기