微信公众号开发之获取位置信息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 09 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
PHP伪静态页面函数附使用方法
Jun 20 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php数据类型判断函数有哪些
Sep 23 PHP
php中的strpos使用示例
Feb 27 PHP
php 伪静态之IIS篇
Jun 02 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
分享3个php获取日历的函数
Sep 25 PHP
php实现的递归提成方案实例
Nov 14 PHP
PHP封装的XML简单操作类完整实例
Nov 13 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新手上路(八)
2006/10/09 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php微信开发之关注事件
2018/06/14 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
详细分析python3的reduce函数
2017/12/05 Python
django中间键重定向实例方法
2019/11/10 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
企业管理专业个人求职信范文
2013/09/24 职场文书
学校门卫岗位职责
2014/03/16 职场文书
环保建议书100字
2014/05/14 职场文书
精神病医院见习报告
2014/11/03 职场文书
简历自荐信范文
2015/03/09 职场文书
捐书活动倡议书
2015/04/27 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL
redis protocol通信协议及使用详解
2022/07/15 Redis