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 16 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
php实现word转html的方法
Jan 22 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
laravel5.6中的外键约束示例
Oct 23 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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
JQuery 入门实例1
2009/06/25 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
canvas的神奇用法
2017/02/03 Javascript
浅谈node的事件机制
2017/10/09 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
python制作图片缩略图
2019/04/30 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python Merge函数原理及用法解析
2020/09/16 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
车间统计员岗位职责
2014/01/05 职场文书
实习班主任自我评价
2015/03/11 职场文书
党员违纪检讨书
2015/05/05 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL