微信公众号开发之获取位置信息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 相关文章推荐
yii框架源码分析之创建controller代码
Jun 28 PHP
基于wordpress主题制作的具体实现步骤
May 10 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
php对象工厂类完整示例
Aug 09 PHP
php访问对象中的成员的实例方法
Nov 17 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
PHP5中MVC结构学习
2006/10/09 PHP
php格式化日期实例分析
2014/11/12 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
求得div 下 img的src地址的js代码
2007/02/28 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
让 python 命令行也可以自动补全
2014/11/30 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
python模拟实现分发扑克牌
2020/04/22 Python
Python容器类型公共方法总结
2020/08/19 Python
Python基于template实现字符串替换
2020/11/27 Python
Python使用Pygame绘制时钟
2020/11/29 Python
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
写好自荐信的几个要点
2013/12/26 职场文书
工作个人的自我评价
2014/01/14 职场文书
幼儿园课题方案
2014/06/09 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL