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版(2)
Oct 09 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
PHP中redis的用法深入解析
Feb 20 PHP
PHP开发微信支付的代码分享
May 25 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
php中的动态调用实例分析
Jan 07 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 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
PHP7之Mongodb API使用详解
2015/12/26 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
php防止sql注入的方法详解
2017/02/20 PHP
PHP7 其他修改
2021/03/09 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
JS实现留言板功能
2017/06/17 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
Python 可爱的大小写
2008/09/06 Python
python中import学习备忘笔记
2017/01/24 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
动物学专业毕业生求职信
2013/10/11 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
人力资源管理求职信
2014/08/07 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
签字仪式主持词
2015/07/03 职场文书
企业法律事务工作总结
2015/08/11 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
Spring Bean是如何初始化的详解
2022/03/22 Java/Android