微信公众号开发之获取位置信息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下通过file_get_contents的代理使用方法
Feb 16 PHP
php实现下载限制速度示例分享
Feb 13 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
PHP中的替代语法介绍
Jan 09 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
windows下apache搭建php开发环境
Aug 27 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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采集腾讯微博的实现代码
2012/01/19 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
关于人生的感言
2014/01/17 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
有创意的广告词
2014/03/18 职场文书
土木工程求职信
2014/05/29 职场文书
服务口号大全
2014/06/11 职场文书
私人委托书格式
2014/09/10 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
责任书范本大全
2015/05/11 职场文书
多人股份制合作协议书
2016/03/19 职场文书
mysql知识点整理
2021/04/05 MySQL
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
方法汇总:Python 安装第三方库常用
2022/04/26 Python