微信公众号开发之获取位置信息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面向对象全攻略 (十二) 抽象方法和抽象类
Sep 30 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
php注销代码(session注销)
May 31 PHP
php开发文档 会员收费1期
Aug 14 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
给ECShop添加最新评论
Jan 07 PHP
php使用array_search函数实现数组查找的方法
Jun 12 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 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
中国收音机工业发展史
2021/03/02 无线电
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
详解python中的线程
2018/02/10 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python向图片里添加文字
2019/11/26 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
思想专业自荐信范文
2013/12/25 职场文书
心得体会开头
2014/01/01 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
趣味运动会简讯
2015/07/20 职场文书
高一军训口号
2015/12/25 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python