微信公众号开发之获取位置信息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 相关文章推荐
PHP5+UTF8多文件上传类
Oct 17 PHP
php empty函数 使用说明
Aug 10 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
php实现图片上传、剪切功能
May 07 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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发送get、post请求的6种方法简明总结
2014/07/08 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
采购人员的个人自我评价
2014/01/16 职场文书
篝火晚会主持词
2014/03/25 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
结对共建工作方案
2014/06/02 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
网络舆情信息简报
2015/07/21 职场文书
毕业班工作总结
2015/08/10 职场文书
公司与个人合作协议书
2016/03/19 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript
Redis 哨兵机制及配置实现
2022/03/25 Redis