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 获取mysql数据库信息代码
Mar 12 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
php去除头尾空格的2种方法
Mar 16 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
Laravel框架路由管理简单示例
May 07 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
layui导航栏实现代码
2017/05/19 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
详解vue中组件参数
2018/07/09 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python读取和保存图片5种方法对比
2018/09/12 Python
Python 切分数组实例解析
2019/11/07 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
研究生自我鉴定范文
2013/10/30 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
大学生表扬信范文
2014/01/09 职场文书
会务接待方案
2014/02/27 职场文书
青年文明号服务承诺
2014/03/31 职场文书
初中同学会活动方案
2014/08/22 职场文书
雾霾停课通知
2015/04/24 职场文书