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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php 文件上传实例代码
Apr 19 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
对laravel in 查询的使用方法详解
Oct 09 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python最基本的输入输出详解
2015/04/25 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
实例讲解Python爬取网页数据
2018/07/08 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python字符串查找函数的用法详解
2019/07/08 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
简单的命令查看安装的python版本号
2020/08/28 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
STP的判定过程
2012/10/01 面试题
信息技术培训感言
2014/03/06 职场文书
骨干教师事迹材料
2014/12/17 职场文书
小学班主任个人总结
2015/03/03 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python