微信公众号开发之获取位置信息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 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php获取网站百度快照日期的方法
Jul 29 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
php截取视频指定帧为图片
May 16 PHP
Yii2单元测试用法示例
Nov 12 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 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
做个自己站内搜索引擎
2006/10/09 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
PHP文件与目录操作示例
2016/12/24 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
js模拟微博发布消息
2017/02/23 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
JavaScript实现tab栏切换效果
2020/03/16 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
利用python如何在前程无忧高效投递简历
2019/05/07 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
《开国大典》教学反思
2014/04/19 职场文书
初二学习计划书范文
2014/04/27 职场文书
好听的队名和口号
2014/06/09 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
介绍信格式样本
2015/05/05 职场文书
员工年度工作总结2015
2015/05/18 职场文书