微信公众号开发之获取位置信息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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
php4的session功能评述(二)
Oct 09 PHP
详解:――如何将图片储存在数据库里
Dec 05 PHP
php 文章采集正则代码
Dec 28 PHP
PHP数据类型的总结分析
Jun 13 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
从wamp到xampp的升级之路
Apr 08 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 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
神族 Protoss 历史背景
2020/03/14 星际争霸
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JS求平均值的小例子
2013/11/29 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
浅析Python多线程下的变量问题
2015/04/28 Python
python数据结构之图的实现方法
2015/07/08 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
优秀毕业生就业推荐信
2014/05/22 职场文书
高中课程设置方案
2014/05/28 职场文书
单位员工收入证明样本
2014/10/09 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js