今天中午找了个查询快递情况的API,晚上又无聊,就做了个查询快递的微信公共账号
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "iexpress");
$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;
$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(!empty( $keyword ))
{
$msgType = "text";
//$contentStr = "Welcome to wechat world!";
$express=new Express();
$contentStr=$express->express($keyword);
$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;
}
}
}
//
class Express
{
public function express($values)
{
$type='shentong';//如果是别的快递公司,可以换下,有于没有其他快递公司的快递单,所以就么没有测试
//$values='568983164979';
$qurl='http://www.kuaidi100.com/query?type='.$type.'&postid='.$values;
$fetch=new BaeFetchUrl();
$content=$fetch->get($qurl);
$result=json_decode($content,true);
$count=count($result['data']);//获的数目
$i=0;
while($i<$count)
{
$results.=$result['data'][$i]['time'].':'."\n".$result['data'][$i]['context']."\n\n";//获取json数据data的时间和内容
$i++;
}
return $results;
//return $count;
}
}
?>