微信公众号开发之获取位置信息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桌面中心(二) 数据库写入
Mar 11 PHP
一些常用的php简单命令代码集锦
Sep 24 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 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初学者阅读的4本经典书籍
2016/09/23 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
python输出带颜色字体实例方法
2019/09/01 Python
pytorch之添加BN的实现
2020/01/06 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
浅谈Python3中print函数的换行
2020/08/05 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
中学家长会邀请函
2014/02/03 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
写给老师的保证书
2015/05/09 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
HttpClient实现文件上传功能
2022/08/14 Java/Android