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
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
php获取当月最后一天函数分享
Feb 02 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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
如何让CI框架支持service层
2014/10/29 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python排序方法实例分析
2015/04/30 Python
Python中有趣在__call__函数
2015/06/21 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
python中的print()输出
2019/04/12 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python3 xpath和requests应用详解
2020/03/06 Python
基于python实现地址和经纬度转换
2020/05/19 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
董事长秘书职责
2014/01/31 职场文书
创业融资计划书
2014/04/25 职场文书
一分钟演讲稿
2014/04/30 职场文书
诚信贷款承诺书
2014/05/30 职场文书
个人自查自纠材料
2014/10/14 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
分享3个非常实用的 Python 模块
2022/03/03 Python