微信公众号开发之获取位置信息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脚本的10个技巧(7)
Oct 09 PHP
一个高ai的分页函数和一个url函数
Oct 09 PHP
php中设置多级目录session的问题
Aug 08 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 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
自己动手做一个SQL解释器
2006/10/09 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
smarty内置函数section的用法
2015/01/22 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
比较完整的微信开发php代码
2016/08/02 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
银行办理业务介绍信
2014/01/18 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
小学语文教师研修日志
2015/11/13 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS