微信公众号开发之获取位置信息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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
php连接mysql数据库代码
Mar 10 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
Laravel实现ApiToken认证请求
Oct 14 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
PHP 裁剪图片
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上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
Python实现对象转换为xml的方法示例
2017/06/08 Python
浅谈Python处理PDF的方法
2017/11/10 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
机械电子工程专业推荐信范文
2013/11/20 职场文书
前台接待的工作职责
2013/11/21 职场文书
高中军训广播稿
2014/01/14 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
《火烧云》教学反思
2014/04/12 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
python基础之文件处理知识总结
2021/05/23 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫