当前位置:首页 > PHP教程 > php高级应用 > 列表

微信公众号开发之获取位置信息php代码

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-11 14:23:43 浏览: 评论:0 

本文实例为大家分享了php微信公众号获取位置信息的具体代码,供大家参考,具体内容如下:

  1. <?php 
  2. /** 
  3.  * wechat php test 
  4.  */ 
  5.   
  6. //define your token 
  7. define("TOKEN""weixin"); 
  8. $wechatObj = new wechatCallbackapiTest(); 
  9. //$wechatObj->valid(); 
  10. $wechatObj->responseMsg(); 
  11. class wechatCallbackapiTest 
  12.  public function valid() 
  13.  { 
  14.   $echoStr = $_GET["echostr"]; 
  15.   
  16.   //valid signature , option 
  17.   if($this->checkSignature()){ 
  18.    echo $echoStr
  19.    exit
  20.   } 
  21.  } 
  22.   
  23.  public function responseMsg() 
  24.  { 
  25.   //get post data, May be due to the different environments 
  26.   $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 
  27.   
  28.   //extract post data 
  29.   if (!emptyempty($postStr)){ 
  30.   
  31.     $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA); 
  32.     $fromUsername = $postObj->FromUserName; 
  33.     $toUsername = $postObj->ToUserName; 
  34.     $type = $postObj->MsgType; 
  35.     $customevent = $postObj->Event; 
  36.     $latitude = $postObj->Location_X; 
  37.     $longitude = $postObj->Location_Y; 
  38.     $keyword = trim($postObj->Content); 
  39.     $time = time(); 
  40.     $textTpl = "<xml> 
  41.        <ToUserName><![CDATA[%s]]></ToUserName> 
  42.        <FromUserName><![CDATA[%s]]></FromUserName> 
  43.        <CreateTime>%s</CreateTime> 
  44.        <MsgType><![CDATA[%s]]></MsgType> 
  45.        <Content><![CDATA[%s]]></Content> 
  46.        <FuncFlag>0</FuncFlag> 
  47.        </xml>";     
  48.     if($type=="event" and $customevent=="subscribe"){ 
  49.      $contentStr = "感谢你的关注\n回复1查看联系方式\n回复2查看最新资讯\n回复3查看法律文书"
  50.      $msgType = "text"
  51.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  52.      echo $resultStr
  53.      }  
  54.     if($type=="image" ){ 
  55.      $contentStr = "你的图片很棒!"
  56.      $msgType = "text"
  57.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  58.      echo $resultStr
  59.      }  
  60.     if($type=="location" ){ 
  61.      $contentStr = "你的纬度是{$latitude},经度是{$longitude},我已经锁定!"
  62.      $msgType = "text"
  63.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  64.      echo $resultStr
  65.      }   
  66.     if(!emptyempty$keyword )) 
  67.     {         
  68.      $msgType = "text"
  69.      if($keyword=="1"){ 
  70.      $contentStr = "qiphon";} 
  71.      if($keyword=="2"){ 
  72.      $contentStr = "test222";} 
  73.      if($keyword=="3"){ 
  74.      $contentStr = "test333";}      
  75.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  76.      echo $resultStr
  77.     }else
  78.      echo "Input something..."
  79.     } 
  80.   
  81.   }else { 
  82.    echo ""
  83.    exit
  84.   } 
  85.  } 
  86.   
  87.  private function checkSignature() 
  88.  { 
  89.   $signature = $_GET["signature"]; 
  90.   $timestamp = $_GET["timestamp"]; 
  91.   $nonce = $_GET["nonce"];  
  92.   
  93.   $token = TOKEN; 
  94.   $tmpArr = array($token$timestamp$nonce); 
  95.   sort($tmpArr); 
  96.   $tmpStr = implode( $tmpArr ); 
  97.   $tmpStr = sha1( $tmpStr ); 
  98.   
  99.   if$tmpStr == $signature ){ 
  100.    return true; //phpfensi.com 
  101.   }else
  102.    return false; 
  103.   } 
  104.  } 
  105.   
  106. ?> 

Tags: 公众 位置 代码

分享到: