微信地理位置信息代码
/*
* 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 == "location"){
$contentStr = "你的纬度是{$latitude},你的经度是{$longitude}";
$msgType = "text" ;
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}
if($type == "event" and $customevent == "subscribe"){
$contentStr = "感谢你的关注 \n 回复1 电话 邮箱 \n 回复2.qq信息 \n 回复3地址信息";
$msgType = "text" ;
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo $resultStr;
}
if(!empty($keyword))
{
$msgType = "text" ;
$contentStr = "1 电话 邮箱 2.qq信息 3地址信息";
if($keyword == "1"){//关键词为1时回复
$contentStr = "电话:15057190640 Email:2323178881@qq.com !!";
}
if ($keyword == "2") {//关键词为2时回复
$contentStr = "我的qq是2323178881 !";
}
if ($keyword == "3") {//关键词为3时回复
$contentStr = "浙江省杭州市江干区闸弄口街道!";
}
$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;
}
}
}
来自于datou:https://github.com/datou-leo/ci