PHP 经过单号查询快递( 申通、EMS、顺丰、圆通、中通、韵达、每天、汇通、全峰、德邦、宅急送)


<?php
header('content-type:text/html;charset=utf-8');
/**
* @param $url String
* @param array $post
* @param array $options
* @return mixed at most json
*/
function curl_get($url, array $post = NULL, array $options = array())
{
	$defaults = array(
		CURLOPT_HEADER => 0,
		CURLOPT_URL => $url,
		CURLOPT_FRESH_CONNECT => 1,
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_FORBID_REUSE => 1,
		CURLOPT_TIMEOUT => 4,
		CURLOPT_POSTFIELDS => http_build_query($post)
	);

	$ch = curl_init();
	curl_setopt_array($ch, ($options + $defaults));
	if( ! $result = curl_exec($ch))
	{
	trigger_error(curl_error($ch));
	}
	curl_close($ch);
	return $result;
}

//正确的返回格式 JSON
/**
* {"message":"ok","state":"3″,"data":[{"context":"已签收,签收人是【本人】",
* "time":"2013-12-15 11:02:26","ftime":"2013-12-15 11:02:26"},{"context":"
* 【湖南长沙雨花分公司】的派件员【林大自取分部82177562 电话(82171562)】正在派件",
* "time":"2013-12-14 21:43:38","ftime":"2013-12-14 21:43:38"},{"context":
* "快件已到达【湖南长沙雨花分公司】 扫描员是【汤建敏】上一站是【】","time":"2013-12-14
* 17:19:52","ftime":"2013-12-14 17:19:52"},{"context":"由【湖南长沙航空部】发往
* 【湖南长沙雨花分公司】","time":"2013-12-14 16:26:36","ftime":"2013-12-14 16:26:36"}
* ,{"context":"【浙江萧山公司】正在进行【装袋】扫描","time":"2013-12-12 18:59:17",
* "ftime":"2013-12-12 18:59:17"},{"context":"由【浙江萧山公司】发往【湖南长沙中转部】"
* ,"time":"2013-12-12 18:59:17","ftime":"2013-12-12 18:59:17"},{"context":"【浙江萧山公司】
* 的收件员【公司汉帛 】已收件","time":"2013-12-12 18:20:47","ftime":"2013-12-12 18:20:47"},
* {"context":"【浙江萧山公司】的收件员【公司汉帛 】已收件","time":"2013-12-12
* 14:56:21","ftime":"2013-12-12 14:56:21"}],"status":"200″,"com":"shentong","nu":
* "768064369802″,"condition":"F00″,"ischeck":"1″}
*/
//正确放回的格式 JSON
/**
* {"message":"ok","state":"3″,
* "data":[{"context":"微山县付村邮电支局:投递并签收
* 投递结果:他人签收代收","time":"2013-12-17 15:42:00",
* "ftime":"2013-12-17 15:42:00"},{"context":"微山县付村邮电支局:投递并签收",
* "time":"2013-12-17 09:47:00","ftime":"2013-12-17 09:47:00"}
* ,{"context":"微山县邮政局速递公司:离开处理中心,发往微山县付村邮电支局",
* "time":"2013-12-16 18:38:56","ftime":"2013-12-16 18:38:56"},
* {"context":"微山县邮政局速递公司:到达处理中心,来自金华市","time":"
* 2013-12-16 17:27:18","ftime":"2013-12-16 17:27:18"},{"context":
* "金华市:离开处理中心,发往枣庄市","time":"2013-12-14 23:57:43","ftime":
* "2013-12-14 23:57:43"},{"context":"金华市:到达处理中心,来自义乌市",
* "time":"2013-12-14 22:51:02","ftime":"2013-12-14 22:51:02"},
* {"context":"义乌市义乌市电子商务分公司:收寄","time":"2013-12-14 15:00:00",
* "ftime":"2013-12-14 15:00:00"}],"status":"200″,"com":"ems","nu":"5000655082802″,
* "condition":"F00″,"ischeck":"1″}
*/
//错误的格式 JSON
/**
* {"status":"201″,"message":"快递公司参数异常:单号不存在或者已通过期"}
*/
/**
* @param string $postid 快递单号
* @param string $type 快递类型
* shentong —> 申通
* ems —> EMS
* shunfeng –> 顺丰
* yuantong –> 圆通
* zhongtong –> 中通
* yunda –> 韵达
* tiantian —> 每天快递
* huitongkuaidi –> 汇通快递
* quanfengkuaidi –> 全峰快递
* debangwuliu –> 德邦物流
* zhaijisong –> 宅急送
* @return mixed json格式
*/

function Dquery($postid = '268323324324' , $type = 'shentong')
{
	$post_data = array (
	"type" => $type,
	"postid" => $postid ,
	"id" => "1",
	"valicode" => "",
	"temp" => '0.7771608149632812'
	) ;
	$url ='http://www.kuaidi100.com/query';
	return curl_get($url,$post_data);
}



/**
* 申通快递
* @param string $postid String 快递单号
* @return mixed at most json
*/
function shentong($postid = '229055602837')
{
	return Dquery($postid,'shentong');
}



/**
* EMS
* @param string $postid 快递单号
* @return mixed JSON
*/
function EMS($postid = '5000655082802')
{
	return Dquery($postid,'ems');
}



/**
* 顺丰快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function shunfeng($postid = '370270606236')
{
	return Dquery($postid,'shunfeng');
}



/**
* 圆通快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function yuantong($postid = '9149223354')
{
	return Dquery($postid,'yuantong');
}
/**
* 中通快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function zhongtong($postid = '778179380478')
{
	return Dquery($postid,'zhongtong');
}

/**
* 韵达快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function yunda($postid = '1201030121554')
{
	return Dquery($postid,'yunda');
}

/**
* 每天快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function tiantian($postid = '580054419316')
{
	return Dquery($postid,'tiantian');
}

/**
* 汇通快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function huitongkuaidi($postid='210322948150')
{
	return Dquery($postid,'huitongkuaidi');
}

/**
* 全峰快递
* @param string $postid 快递单号
* @return mixed JSON
*/
function quanfengkuaidi($postid='340003662547')
{
	return Dquery($postid,'quanfengkuaidi');
}

/**
* 德邦物流
* @param string $postid 快递单号
* @return mixed JSON
*/
function debangwuliu($postid='16312048')
{
	return Dquery($postid,'debangwuliu');
}

/**
* 宅急送
* @param string $postid 快递单号
* @return mixed JSON
*/
function chaijisong($postid = '3332776112')
{
	return Dquery($postid,'zhaijisong');
}


//Debug 这里是调用时的 debug,最好再加个订单号。
//放回格式都是json喔。。 记得解析
print_r(json_decode(shentong()));
//echo EMS();
//echo shunfeng();
//echo yuantong();
//echo zhongtong();
//echo yunda();
//echo tiantian();
//echo huitongkuaidi();
//echo quanfengkuaidi();
//echo debangwuliu();


?>