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中的日期处理方法集锦
Jan 02 PHP
程序员编程十条戒律
Jul 09 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
php实现的ping端口函数实例
Nov 12 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 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命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
js实现楼层导航功能
2017/02/23 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
英国工具中心:UK Tool Centre
2017/07/10 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
经典公益广告词
2014/03/13 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
2014年营业员工作总结
2014/11/18 职场文书
宿舍管理制度范本
2015/08/07 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS