微信公众号开发之获取位置信息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自动更新新闻DIY
Oct 09 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
php curl模拟post提交数据示例
Dec 31 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
php简单实现MVC
Feb 05 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
php伪静态验证码不显示的解决方案
Sep 26 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基于mcrypt的加密解密实例
2014/10/27 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
js查找节点的方法小结
2015/01/13 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
Python通过future处理并发问题
2017/10/17 Python
python连接数据库的方法
2017/10/19 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Python实现区域填充的示例代码
2021/02/03 Python
人事专员的职责
2014/02/26 职场文书
中队活动总结
2014/08/27 职场文书
治庸问责心得体会
2014/09/12 职场文书
求职自荐信怎么写
2015/03/04 职场文书
毕业生政审意见范文
2015/06/04 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python