微信公众号开发之获取位置信息php代码


Posted in PHP onJune 13, 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;
    $customevent = $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>";    
    if($type=="event" and $customevent=="subscribe"){
     $contentStr = "感谢你的关注\n回复1查看联系方式\n回复2查看最新资讯\n回复3查看法律文书";
     $msgType = "text";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
     } 
    if($type=="image" ){
     $contentStr = "你的图片很棒!";
     $msgType = "text";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
     } 
    if($type=="location" ){
     $contentStr = "你的纬度是{$latitude},经度是{$longitude},我已经锁定!";
     $msgType = "text";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
     }  
    if(!empty( $keyword ))
    {        
     $msgType = "text";
     if($keyword=="1"){
     $contentStr = "qiphon";}
     if($keyword=="2"){
     $contentStr = "test222";}
     if($keyword=="3"){
     $contentStr = "test333";}     
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
    }else{
     echo "Input something...";
    }

  }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和ACCESS写聊天室(一)
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
php实现jQuery扩展函数
Oct 30 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
php学习之function的用法
Jul 14 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
php实现无限级分类
Dec 24 PHP
PHP文件缓存类实现代码
Oct 26 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 #PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 #PHP
php中html_entity_decode实现HTML实体转义
Jun 13 #PHP
php处理多图上传压缩代码功能
Jun 13 #PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 #PHP
You might like
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
js实现日历的简单算法
2017/01/24 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
django 环境变量配置过程详解
2019/08/06 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python爬虫请求头设置代码
2020/07/28 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
企业文化建设实施方案
2014/03/22 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
学生犯错保证书
2015/05/09 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL