微信公众号开发之获取位置信息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 中的类
Oct 09 PHP
人大复印资料处理程序_查询篇
Oct 09 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
MongoDB在PHP中的常用操作小结
Feb 20 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
PHP session垃圾回收机制实例分析
Jun 28 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中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
jQuery中position()方法用法实例
2015/01/16 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
Python版微信红包分配算法
2015/05/04 Python
详解Python迭代和迭代器
2016/03/28 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python命令行click参数用法解析
2019/12/19 Python
聊聊python中的循环遍历
2020/09/07 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
2014年大学生四年规划书范文
2014/04/03 职场文书
小学庆六一活动总结
2014/08/28 职场文书
新党章的学习心得体会
2014/11/07 职场文书
客户付款通知书
2015/04/23 职场文书
大国崛起英国观后感
2015/06/02 职场文书
升学宴家长答谢词
2015/09/29 职场文书
python tkinter实现定时关机
2021/04/21 Python
Python Django获取URL中的数据详解
2021/11/01 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL