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版)
Oct 09 PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
PHP常用的小程序代码段
Nov 14 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 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
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP读取xml方法介绍
2013/01/12 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
村委会主任先进事迹
2014/01/15 职场文书
高中数学教学反思
2014/01/30 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
优秀教师先进材料
2014/12/16 职场文书
后进生评语大全
2015/01/04 职场文书
如何理解及使用Python闭包
2021/06/01 Python
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python