Рубрики
Uncategorized

Экспресс – запрос на разработку общедоступного номера PHP Wechat

Автор оригинала: David Wong.

В этой статье мы делимся конкретным кодом экспресс-запроса, разработанным PHP Wechat Public Number для вашей справки. Подробности заключаются в следующем.

Экспресс-запрос

  • Использование массива
  • инструкция foreach

Интерфейс запроса: Экспресс: https://www.aikuaidi.cn/api/

Основной код Выглядит следующим образом:

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customrevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "
              
              
              %s
              
              
              0
              ";       
        switch ($type)
        { 
        case "text";
          Status = array ('0'=>'query error','1'=>'temporarily unrecorded','2'=>'on the way','3'=>'In delivery','4'=>'signed','5'=>'rejected','6'=>'difficult parts','7'=>'returned'); //Build express status array
          $kuaidiurl= "http://www.aikuaidi.cn/rest/? Key= ff4735a30a7a4e5a8637146 fd0e7cec9&order={keyword}&id=shentong&show=xml";
          $kuaidistr = file_get_contents ($kuaidiurl); // Read in the file
          $kuaidiobj = simplexml_load_string ($kuaidistr); //xml parsing
          $kuaidistatus = $kuaidiobj - > Status; // Get Express Status
          $kuaistr = strval ($kuaidistatus); // object converted to string
          $contentStr0 = $status [$kuaistr]; // returned by array
          foreach ($kuaidiobj->Data->Order as $a)
          {  
            foreach ($a->Time as $b)
            {
              foreach ($a->Content as $c)
              {
                $m.="{$b}{$c}";}
              }
          }
          // Traverse to get express time and events
          $contentStr= "Your express delivery number {$keyword} {$contentStr0} {$m}";
          break;         
        default;
          $contentStr = "This feature is not yet developed";  
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;

Общий код для индекса. php выглядит следующим образом:

valid();
$wechatObj->responseMsg();
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;
        $type = $postObj->MsgType;
        $customrevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "
              
              
              %s
              
              
              0
              ";       
        switch ($type)
        { 
        case "text";
          Status = array ('0'=>'query error','1'=>'temporarily unrecorded','2'=>'on the way','3'=>'In delivery','4'=>'signed','5'=>'rejected','6'=>'difficult parts','7'=>'returned'); //Build express status array
          $kuaidiurl= "http://www.aikuaidi.cn/rest/? Key= ff4735a30a7a4e5a8637146 fd0e7cec9&order={keyword}&id=shentong&show=xml";
          $kuaidistr = file_get_contents ($kuaidiurl); // Read in the file
          $kuaidiobj = simplexml_load_string ($kuaidistr); //xml parsing
          $kuaidistatus = $kuaidiobj - > Status; // Get Express Status
          $kuaistr = strval ($kuaidistatus); // object converted to string
          $contentStr0 = $status [$kuaistr]; // returned by array
          foreach ($kuaidiobj->Data->Order as $a)
          {  
            foreach ($a->Time as $b)
            {
              foreach ($a->Content as $c)
              {
                $m.="{$b}{$c}";}
              }
          }
          // Traverse to get express time and events
          $contentStr= "Your express delivery number {$keyword} {$contentStr0} {$m}";
          break;         
        default;
          $contentStr = "This feature is not yet developed";  
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;

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

?>

Выше приведено все содержание этой статьи. Я надеюсь, что это будет полезно для изучения каждого, и я надеюсь, что вы будете больше поддерживать разработчика.