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 相关文章推荐
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
PHP代码优化的53个细节
Mar 03 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
php实现删除空目录的方法
Mar 16 PHP
php类常量用法实例分析
Jul 09 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
php实现的递归提成方案实例
Nov 14 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
laravel实现按月或天或小时统计mysql数据的方法
Oct 09 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 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中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
js常用代码段收集
2011/10/28 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
深入理解js promise chain
2016/05/05 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
教师自荐信
2013/12/10 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
绩效考核实施方案
2014/03/18 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
2015年元旦活动总结
2014/05/09 职场文书
中标通知书范本
2015/04/17 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
详解Python内置模块Collections
2022/03/22 Python
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
win7配置本地ftp服务器的图文教程
2022/08/05 Servers