微信公众号开发之获取位置信息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新手上路(十一)
Oct 09 PHP
php中的观察者模式
Mar 24 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
PHP静态文件生成类实例
Nov 29 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
php提高脚本性能的4个技巧
Aug 18 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 多维数组排序(usort,uasort)
2010/06/30 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
php实现删除空目录的方法
2015/03/16 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
js同时按下两个方向键
2007/12/01 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python注释详解
2016/06/01 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
在python里从协程返回一个值的示例
2019/02/19 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
怎么快速自学python
2020/06/22 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
2014年党员公开承诺书范文
2014/03/28 职场文书
公司新年寄语
2014/04/04 职场文书
高中学生期末评语
2014/04/25 职场文书
护士年终个人总结
2015/02/13 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle