微信公众号开发之获取位置信息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 04 PHP
mysql5详细安装教程
Jan 15 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
js文件缓存之版本管理详解
2013/07/05 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
优秀中学生事迹材料
2014/01/31 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
关于颐和园的导游词
2015/01/30 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
2019年教师入党申请书
2019/06/27 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
Java 多线程并发FutureTask
2022/06/28 Java/Android