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 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
is_file和file_exists效率比较
Mar 14 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程序?
2006/12/08 PHP
php 获取完整url地址
2008/12/20 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
Linux的主要特性
2016/09/03 面试题
什么是设计模式
2012/06/17 面试题
高中军训感言400字
2014/02/24 职场文书
教师求职自荐信
2014/03/09 职场文书
《观舞记》教学反思
2014/04/16 职场文书
2014年会策划方案
2014/05/11 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
导游词之日月潭
2019/11/05 职场文书
详解Python常用的魔法方法
2021/06/03 Python
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android