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
php csv操作类代码
Dec 14 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php 下载保存文件保存到本地的两种实现方法
Aug 12 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
php提示Failed to write session data错误的解决方法
Dec 17 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 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
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP6 先修班 JSON实例代码
2008/08/23 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
js密码强度校验
2015/11/10 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
python中时间模块的基本使用教程
2019/05/14 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
2014年管理工作总结
2014/11/22 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
诚信考试主题班会
2015/08/17 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android