微信公众号开发之获取位置信息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 Session生命周期介绍
Mar 02 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
php文件上传的简单实例
Oct 19 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
总结对比php中的多种序列化
Aug 28 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
PHP培训要多少钱
Jun 06 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
php插入mysql数据返回id的方法
May 31 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 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图像验证码生成代码
2017/06/08 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
js 调整select 位置的函数
2008/02/21 Javascript
用JavaScript调用WebService的示例
2008/04/07 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python之yield表达式学习
2014/09/02 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
给分销商的致歉信
2014/01/14 职场文书
给护士表扬信
2014/01/19 职场文书
房屋转让协议书
2014/10/18 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
会计出纳岗位职责
2015/03/31 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
初中军训感言
2015/08/01 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python
python游戏开发Pygame框架
2022/04/22 Python
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server