🗣 Wd提问: 快递查询源码thinkphp
🤖 Ai回答: 在 ThinkPHP 框架中实现快递查询功能,通常需要调用第三方快递查询接口(如快递100、菜鸟裹裹等)来获取物流信息。下面是一个基于 ThinkPHP 5.x 的简单快递查询源码示例,使用的是 快递100 API。
✅ 前提条件
1、注册 [快递100](https://www.kuaidi100.com/) 账号,获取 API 密钥(`appkey`)。
2、使用 ThinkPHP 5.x 框架。
3、确保项目已开启 `curl` 或 `file_get_contents` 支持。
📦 示例:快递查询控制器(`ExpressController.php`)
php
<?php
namespace app\controller;
use think\Controller;
use think\Request;
class Express extends Controller
{
// 快递100 API 地址
private $apiUrl = 'http://api.kuaidi100.com/api';
// 你的快递100 AppKey
private $appKey = 'your_app_key_here'; // 替换为你的实际 key
/
* 快递查询接口
*/
public function query(Request $request)
{
$number = $request-param('number');
$company = $request-param('company'); // 如:SF, ZTO, YTO 等
if (!$number !$company) {
return json(['code' = 400, 'msg' = '请输入单号和快递公司']);
}
$data = [
'com' = $company,
'nu' = $number,
'appid' = $this-appKey,
'show' = 2,
'muti' = 1,
'order' = 'desc'
];
$result = $this-curlPost($this-apiUrl, $data);
if ($result && isset($result['data'])) {
return json(['code' = 200, 'data' = $result['data'], 'msg' = '查询成功']);
} else {
return json(['code' = 500, 'msg' = '查询失败,请检查单号或快递公司']);
}
}
/
* 发送 POST 请求
*/
private function curlPost($url, $data)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略 SSL 验证(生产环境建议关闭)
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
return json_decode($response, true);
} else {
return null;
}
}
}
🌐 路由配置(`route/route.php`)
php
use think\facade\Route;
Route::get('express/query', 'Express/query');
🔍 使用方式(前端请求示例)
bash
GET /express/query?number=123456789&company=SF
注意:`company` 可以是 SF(顺丰)、ZTO(中通)、YTO(圆通)等,可参考快递100官方文档。
📚 补充说明
快递100 免费额度:每天有免费调用次数限制,超出需付费。
API 文档:[https://www.kuaidi100.com/open/api](https://www.kuaidi100.com/open/api)
其他接口:也可使用菜鸟开放平台、快递鸟等。
💡 扩展建议
1、缓存结果:使用 Redis 缓存查询结果,避免频繁请求。
2、自动识别快递公司:通过单号前缀自动识别快递公司。
3、错误处理增强:添加日志记录和异常捕获。
✅ 自动识别快递公司示例(补充函数)
php
private function getCompanyByNumber($number)
{
$map = [
'SF' = ['^SF', '^ST'],
'ZTO' = ['^78', '^79'],
'YTO' = ['^YT']
];
foreach ($map as $com = $prefixes) {
foreach ($prefixes as $prefix) {
if (preg_match('/' 、$prefix 、'/', $number)) {
return $com;
}
}
}
return null;
}
然后在 `query()` 方法中先尝试自动识别:
php
$company = $request-param('company') ?: $this-getCompanyByNumber($number);
如果你使用的是 ThinkPHP 6,语法基本一致,只需注意命名空间和依赖注入的差异。
如需完整项目示例或对接其他快递 API,欢迎继续提问!
📣 商家广告:





0
IP地址: 225.7.125.96
搜索次数: 0
提问时间: 2025-11-12 01:16:12
🛒 域名购买:
nk.com.hk
pmmm.com.cn
wk.gs
hv.gs
wzsx.net
8.he.cn
93.gold
chxk.cn
wd.chat
jqr.sale
❓️ 热门提问:
俄罗斯搜索yandex引擎
问题定位
.yun域名
多个域名注册
免费测试云主机
网通服务器租用
idc业务包括哪些
mc服务器下载
站群系统建设服务公司市场分析
SEO工具国际SEO
豌豆Ai站群搜索引擎系统
🌐 域名评估:
xphone.archi
byd.yn.cn
odab.cn
arxw.cn
su8.ha.cn
j.ln.cn
vfzd.cn
358.net.cn
byd.sh.cn
pmcb.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
網址搜尋引擎
求名
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。