PHP 代码功能与使用说明
功能概述
这段 PHP 代码用于调用第三方物流接口(如快递鸟 API)查询物流信息。通过向 API 发送物流公司的代码和运单号,获取对应的物流信息,并将结果返回。
代码详解
接口参数配置
$Apiusr
:API 用户 ID,用于标识 API 调用者。$ApiKey
:API 密钥,用于请求签名。$Apiurl
:API 请求的 URL。$Kdcoms
:快递公司代码,如 "YTO" 表示圆通。$Kdnums
:运单号,用于查询具体物流信息。
构造请求数据
$rData
:要发送的请求数据,包含运单号和快递公司代码等信息。$datas
:构造的 POST 请求参数,包括业务 ID、请求类型、请求数据、数据类型和签名。
数据签名
- 使用 MD5 加密生成数据签名,并通过
base64
编码后再 URL 编码,确保数据的完整性和安全性。
- 使用 MD5 加密生成数据签名,并通过
发送请求
- 将构造好的数据通过
ccurl
函数发送给 API 并获取响应结果。
- 将构造好的数据通过
ccurl 函数
ccurl
是一个通用的 CURL 请求函数,用于发送 HTTP POST 请求,并返回响应结果。
<?php
// 配置API参数
$Apiusr = '1788888';
$ApiKey = '78d4d3ac-3333-8888-ad11-1a48acd572ce';
$Apiurl = 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx';
$Kdcoms = "YTO"; // 快递公司代码
$Kdnums = "yt1428578711034"; // 运单号
// 构造请求数据
$rData = json_encode([
'CustomerName' => '',
'OrderCode' => '',
'ShipperCode' => $Kdcoms,
'LogisticCode' => $Kdnums
]);
// 构造POST数据
$datas = [
'EBusinessID' => $Apiusr,
'RequestType' => "1002",
'RequestData' => $rData,
'DataType' => "2",
'DataSign' => urlencode(base64_encode(md5($rData . $ApiKey)))
];
// 将数据编码为URL格式
$pdata = http_build_query($datas);
// 发送请求并获取结果
$result = ccurl($Apiurl, $pdata);
echo "<br>result: " . $result;
// 通用CURL请求函数
function ccurl($url, $post) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 600,
CURLOPT_FOLLOWLOCATION => 0,
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => !empty($post),
CURLOPT_POSTFIELDS => $post,
CURLOPT_AUTOREFERER => 1
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
?>
使用说明
API 调用
- 在调用 API 前,需要配置好
$Apiusr
、$ApiKey
和$Apiurl
。 - 通过设置
$Kdcoms
和$Kdnums
来指定要查询的快递公司和运单号。
- 在调用 API 前,需要配置好
数据签名
- 使用 MD5 进行签名并通过
base64
编码,然后再 URL 编码以确保安全性。
- 使用 MD5 进行签名并通过
CURL 请求
ccurl
函数负责发送 HTTP POST 请求,并返回 API 响应的结果。
总结
这段代码通过向第三方物流 API 发送请求,查询指定快递单号的物流状态。通过简单配置,您可以使用这段代码进行物流信息查询和结果展示。