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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
二招解决php乱码问题
Mar 25 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
Linux安装配置php环境的方法
Jan 14 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
Apr 01 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
JavaScript 异步调用
2017/10/25 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python中使用partial改变方法默认参数实例
2015/04/28 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Python装饰器原理与用法分析
2018/04/30 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
乡镇办公室工作决心书
2014/03/11 职场文书
毕业留言寄语大全
2014/04/10 职场文书
房屋所有权证明
2014/10/20 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
会计主管竞聘书
2015/09/15 职场文书