php实现快递查询
PHP实现快递查询的方法
使用快递鸟API
快递鸟提供了快递查询的API接口,可以通过PHP调用实现快递查询功能。
注册快递鸟账号并获取API Key和商户ID。
<?php
// 配置商户ID和API Key
$EBusinessID = 'your_EBusinessID';
$AppKey = 'your_AppKey';
// 快递单号
$LogisticCode = '1234567890';
// 请求参数
$requestData = '{
"ShipperCode": "SF",
"LogisticCode": "'.$LogisticCode.'"
}';
// 数据内容签名
$datasign = urlencode(base64_encode(md5($requestData.$AppKey)));
// 请求内容
$postData = array(
'EBusinessID' => $EBusinessID,
'RequestType' => '1002',
'RequestData' => urlencode($requestData),
'DataType' => '2',
'DataSign' => $datasign
);
// 发送请求
$url = 'http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
// 处理返回结果
$result = json_decode($result, true);
print_r($result);
?>
使用阿里云快递查询API
阿里云也提供了快递查询API服务,需要先开通服务并获取AccessKey。
<?php
$host = "https://wuliu.market.alicloudapi.com";
$path = "/kdi";
$method = "GET";
$appcode = "your_appcode";
$no = "1234567890"; // 快递单号
$type = "auto"; // 快递公司自动识别
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "no=".$no."&type=".$type;
$url = $host . $path . "?" . $querys;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, true);
print_r($result);
?>
使用聚合数据API
聚合数据也提供快递查询接口,需要注册获取API Key。
<?php
$key = 'your_api_key';
$no = '1234567890'; // 快递单号
$url = "http://v.juhe.cn/exp/index?key=".$key."&com=auto&no=".$no;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$result = json_decode($output, true);
print_r($result);
?>
注意事项
调用快递查询API时需要注意以下几点:

- 确保已注册相应服务并获取有效的API Key或授权码
- 根据API文档正确设置请求参数
- 处理返回结果时检查状态码,确保查询成功
- 考虑添加错误处理机制,应对网络问题或API限制
- 对于商业应用,注意API的调用频率限制
以上方法都可以实现快递查询功能,选择哪种API取决于具体需求和预算。商业API通常更稳定但可能有费用,免费API可能有调用次数限制。






