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安装攻略:常见问题解答(三)
Oct 09 PHP
如何开发一个虚拟域名系统
Oct 09 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
php 文件上传系统手记
Oct 26 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP header()函数常用方法总结
Apr 11 PHP
php简单日历函数
Oct 28 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
一个数据采集类
2007/02/14 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
php实现的日历程序
2015/06/18 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
Python调用微信公众平台接口操作示例
2017/07/08 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python opencv读mp4视频的实例
2018/12/07 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
python实现批量修改文件名
2020/03/23 Python
python如何构建mock接口服务
2021/01/28 Python
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
EJB的角色和三个对象
2015/12/31 面试题
如何写一个自定义标签
2012/12/28 面试题
实习教师自我鉴定
2013/09/27 职场文书
打架检讨书100字
2014/01/08 职场文书
先进工作者获奖感言
2014/02/08 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
爱国电影观后感
2015/06/19 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python