微信公众号开发之获取位置信息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的宝库目录--PEAR
Oct 09 PHP
PHP Google的translate API代码
Dec 10 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
php代码收集表单内容并写入文件的代码
Jan 29 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
php准确计算复活节日期的方法
Apr 18 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
PHP实现简单注册登录系统
Dec 28 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 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
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Python lambda表达式用法实例分析
2018/12/25 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python SocketServer源码深入解读
2019/09/17 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
学雷锋的心得体会
2014/09/04 职场文书
西安兵马俑导游词
2015/02/02 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书