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之数组学习
May 29 PHP
PHP APC的安装与使用详解
Jun 13 PHP
php旋转图片90度的方法
Nov 07 PHP
ThinkPHP标签制作教程
Jul 10 PHP
php通过session防url攻击方法
Dec 10 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
php实现的一段简单概率相关代码
May 30 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
php微信开发之关注事件
Jun 14 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 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发送get、post请求的6种方法简明总结
2014/07/08 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
用Python编写web API的教程
2015/04/30 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
临床医学专业毕业生的自我评价
2013/10/17 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
教学大赛获奖感言
2014/01/15 职场文书
党支部综合考察材料
2014/05/19 职场文书
人代会标语
2014/06/30 职场文书
大学生村官个人总结
2015/02/15 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
美容院员工规章制度
2015/08/05 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python