微信公众号开发之获取位置信息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 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php Smarty 字符比较代码
2011/02/27 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
python实现列表中最大最小值输出的示例
2019/07/09 Python
python匿名函数用法实例分析
2019/08/03 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python爬虫教程知识点总结
2020/10/19 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
银河香水:Galaxy Perfume
2019/03/25 全球购物
颐和园导游词
2015/01/30 职场文书
追悼会家属答谢词
2015/09/29 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
高三数学教学反思
2016/02/18 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python
Elasticsearch 配置详解
2022/04/19 Java/Android