微信公众号开发之获取位置信息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 02 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
php 代码优化之经典示例
Mar 24 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
培养自己的php编码规范
Sep 28 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
python  创建一个保留重复值的列表的补码
2018/10/15 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
Python字典对象实现原理详解
2019/07/01 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python绘制规则网络图形实例
2019/12/09 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
数组越界问题
2015/10/21 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
大学教师师德师风演讲稿
2014/08/22 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript