微信公众号开发之获取位置信息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 06 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
php实现的双向队列类实例
Sep 24 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
PHP对文件进行加锁、解锁实例
Jan 23 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 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 8小时时间差的解决方法小结
2009/12/22 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
python中随机函数random用法实例
2015/04/30 Python
分享6个隐藏的python功能
2017/12/07 Python
python list转矩阵的实例讲解
2018/08/04 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python实现udp聊天窗口
2020/03/31 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
质量安全标语
2014/06/07 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
学生安全责任协议书
2016/03/22 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python