[转]微信公众平台开发__导航

介绍:导航功能主要是调用百度地图的api,发送用户当前位置,然后根据和目的地的经纬度,在地图上显示用户到目的地睇线路图。

 

[php] view plaincopy
 
  1. <?php  
  2.   
  3. //define your token  
  4. define("TOKEN""wechatnow");  
  5. $wechatObj = new wechatCallbackapiTest();  
  6. $wechatObj->responseMsg();  
  7.   
  8. class wechatCallbackapiTest  
  9. {  
  10.     public function valid()  
  11.     {  
  12.         $echoStr = $_GET["echostr"];  
  13.   
  14.         //valid signature , option  
  15.         if($this->checkSignature()){  
  16.             echo $echoStr;  
  17.             exit;  
  18.         }  
  19.     }  
  20.   
  21.     public function responseMsg()  
  22.     {  
  23.         //get post data, May be due to the different environments  
  24.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
  25.   
  26.         //extract post data  
  27.         if (!empty($postStr)){  
  28.                   
  29.               $postObj = simplexml_load_string($postStr‘SimpleXMLElement‘, LIBXML_NOCDATA);  
  30.                 $fromUsername = $postObj->FromUserName;  
  31.                 $toUsername = $postObj->ToUserName;  
  32.                 $MsgType=$postObj->MsgType;  
  33.         $latitude=$postObj->Location_X;  
  34.         $longitude =$postObj->Location_Y;  
  35.                 $time = time();  
  36.                 $textTpl = "<xml>  
  37.                             <ToUserName><![CDATA[%s]]></ToUserName>  
  38.                             <FromUserName><![CDATA[%s]]></FromUserName>  
  39.                             <CreateTime>%s</CreateTime>  
  40.                             <MsgType><![CDATA[news]]></MsgType>  
  41.                              <ArticleCount>1</ArticleCount>  
  42.                              <Articles>  
  43.                              <item>  
  44.                              <Title><![CDATA[导航]]></Title>   
  45.                              <Description><![CDATA[点击后导航到华师]]></Description>  
  46.                              <PicUrl><![CDATA[]]></PicUrl>  
  47.                              <Url><![CDATA[%s]]></Url>  
  48.                             </item>  
  49.                             </Articles>  
  50.                             <FuncFlag>0</FuncFlag>  
  51.                             </xml>";                    
  52.                 if($MsgType=="location")  
  53.                   
  54.                 {  
  55.                    
  56.                  $url="http://api.map.baidu.com/direction?origin=latlng:{$latitude},{$longitude}|name:你的位置&destination=latlng:23.14123802754,113.34233164787202|name:我的学校&mode=transit?ion=广州&output=html&src=yourCompanyName|yourAppName";//调用百度地图的api  
  57.                     $resultStr = sprintf($textTpl$fromUsername$toUsername$time,$url);  
  58.                     echo $resultStr;  
  59.                 }  
  60.   
  61.         }  
  62.     }  
  63.           
  64.     private function checkSignature()  
  65.     {  
  66.         $signature = $_GET["signature"];  
  67.         $timestamp = $_GET["timestamp"];  
  68.         $nonce = $_GET["nonce"];      
  69.                   
  70.         $token = TOKEN;  
  71.         $tmpArr = array($token$timestamp$nonce);  
  72.         sort($tmpArr);  
  73.         $tmpStr = implode( $tmpArr );  
  74.         $tmpStr = sha1( $tmpStr );  
  75.           
  76.         if$tmpStr == $signature ){  
  77.             return true;  
  78.         }else{  
  79.             return false;  
  80.         }  
  81.     }  
  82. }  
  83.   
  84. ?>  

 

源文地址:http://blog.csdn.net/zhihang527548263/article/details/12684813

[转]微信公众平台开发__导航

上一篇:使用比较运算符比较大小关系


下一篇:(转)微信公众平台开发教程目录