温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php微信开发之谷歌测距的示例分析

发布时间:2021-08-11 11:13:33 来源:亿速云 阅读:122 作者:小新 栏目:开发技术

小编给大家分享一下php微信开发之谷歌测距的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体内容如下

<?php /**  * wechat php test  */ //define your token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); //$wechatObj->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 = "<xml>               <ToUserName><![CDATA[%s]]></ToUserName>               <FromUserName><![CDATA[%s]]></FromUserName>               <CreateTime>%s</CreateTime>               <MsgType><![CDATA[%s]]></MsgType>               <Content><![CDATA[%s]]></Content>               <FuncFlag>0</FuncFlag>               </xml>";                switch ($type)       {  case "event";         if ($customrevent=="subscribe")           {$contentStr = '';}         break;         case "image";         $contentStr = "你的图片很棒!";         break;         case "location";         $disurl="http://maps.googleapis.com/maps/api/distancematrix/xml?origins={$latitude},{$longitude}&destinations=23.355164,116.681889&mode=walking&language=zh-CN&sensor=false";       $apistr=file_get_contents($disurl);       $apiobj=simplexml_load_string($apistr);       $disobj=$apiobj->row->element->distance->text;       $durobj=$apiobj->row->element->duration->text;       $contentStr = "你离我公司约{$disobj}公里,步行约{$durobj}";         break;         case "link" ;         $contentStr = "你的链接有病毒吧!";         break;         case "text";         $weatherurl="http://api.map.baidu.com/telematics/v2/weather?location={$keyword}&ak=1a3cde429f38434f1811a75e1a90310c";          $apistr=file_get_contents($weatherurl);          $apiobj=simplexml_load_string($apistr);          $placeobj=$apiobj->currentCity;//读取城市          $todayobj=$apiobj->results->result[0]->date;//读取星期          $weatherobj=$apiobj->results->result[0]->weather;//读取天气          $windobj=$apiobj->results->result[0]->wind;//读取风力          $temobj=$apiobj->results->result[0]->temperature;//读取温度          $contentStr = "{$placeobj}{$todayobj}天气{$weatherobj},风力{$windobj},温度{$temobj}";          break;                 default;       $contentStr ="此项功能尚未开发";         }         $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;     }   } } ?>

看完了这篇文章,相信你对“php微信开发之谷歌测距的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI