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更新记录的代码
Jun 07 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
PHP运行模式汇总
Nov 06 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
PHP中->和=>的意思
Mar 31 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
javascript常用的方法整理
2015/08/20 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python简单文本处理的方法
2015/07/10 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python数据结构之链表详解
2017/09/12 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
门卫工作岗位职责
2013/12/17 职场文书
火灾现场处置方案
2014/05/28 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
学生会工作感言
2015/08/07 职场文书
毕业班工作总结
2015/08/10 职场文书