微信公众号开发之获取位置信息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 相关文章推荐
提问的智慧
Oct 09 PHP
PHP教程 预定义变量
Oct 23 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
php中session退出登陆问题
Feb 27 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
在 PHP 和 Laravel 中使用 Traits的方法
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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
Mac下安装vue
2018/04/11 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
express启用https使用小记
2019/05/21 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
深入理解javascript中的this
2021/02/08 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
python实现任意位置文件分割的实例
2018/12/14 Python
python3下载抖音视频的完整代码
2019/06/05 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
浅谈Python中的字符串
2020/06/10 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
软件测试英文面试题
2012/10/14 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
酒店副总岗位职责
2013/12/24 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
纠风工作实施方案
2014/03/15 职场文书
个人年终总结怎么写
2015/03/09 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python