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数组去重的函数代码
Feb 03 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
Laravel 的数据库迁移的方法
Jul 31 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
php 策略模式原理与应用深入理解
Sep 25 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
提取HTML标签
2006/10/09 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php中使用url传递数组的方法
2015/02/11 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
Python程序控制语句用法实例分析
2020/01/14 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
Solaris操作系统的线程机制
2015/07/28 面试题
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
教师自荐信范文
2013/12/09 职场文书
教师工作总结范文2014
2014/11/10 职场文书
奖金申请报告模板
2015/05/15 职场文书
小学班长竞选稿
2015/11/20 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers