php微信开发之谷歌测距


Posted in PHP onJune 14, 2018

本文实例为大家分享了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 相关文章推荐
php 文件夹删除、php清除缓存程序
Aug 25 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
php实现复制移动文件的方法
Jul 29 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
Apr 27 PHP
学习PHP Cookie处理函数
Aug 09 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
php微信开发之图片回复功能
Jun 14 #PHP
php微信开发之音乐回复功能
Jun 14 #PHP
php微信开发之关键词回复功能
Jun 13 #PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 #PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
You might like
php简单封装了一些常用JS操作
2007/02/25 PHP
php Mysql日期和时间函数集合
2007/11/16 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
Python中字典和集合学习小结
2017/07/07 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
python计算日期之间的放假日期
2018/06/05 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
详解Python IO口多路复用
2020/06/17 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
Whistles官网:英国女装品牌
2020/08/14 全球购物
Python中如何定义一个函数
2016/09/06 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
奉献演讲稿范文
2014/05/21 职场文书
股份合作协议书
2014/09/10 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
家属联谊会致辞
2015/07/31 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python