微信公众号开发之获取位置信息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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
php实现rc4加密算法代码
Apr 25 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
PHP的PDO预处理语句与存储过程
Jan 27 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php IP及IP段进行访问限制的代码
2008/12/17 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
ucenter通信原理分析
2015/01/09 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
超级强大的表单验证
2006/06/26 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
javascript常用的方法整理
2015/08/20 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
angular6的响应式表单的实现
2018/10/10 Javascript
vue实现信息管理系统
2020/05/30 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python中规范定义命名空间的一些建议
2016/06/04 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python3 logging日志封装实例
2020/04/08 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
python eventlet绿化和patch原理
2020/11/21 Python
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
《少年王冕》教学反思
2014/04/11 职场文书
建设投标担保书
2014/05/13 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
ant design charts 获取后端接口数据展示
2022/05/25 Javascript