5.6 KiB
5.6 KiB
物流查询集成指南
当前实现
系统已集成快递100 API,支持顺丰速运和京东快递的物流轨迹查询。
查询方式优先级
- 快递100 API(推荐)- 实时查询物流轨迹
- 官网链接跳转(备用)- 未配置API时使用
快递100 API 配置(推荐)
1. 注册快递100账号
- 注册企业账号
- 申请API接口权限
- 获取
customer和key
2. 配置环境变量
在 server/.env 文件中添加:
# 快递100配置
LOGISTICS_KUAIDI100_ENABLE=true
LOGISTICS_KUAIDI100_CUSTOMER=你的customer
LOGISTICS_KUAIDI100_KEY=你的key
LOGISTICS_KUAIDI100_QUERY_URL=https://poll.kuaidi100.com/poll/query.do
3. 配置文件
在 server/config/logistics.php 中:
<?php
return [
'kuaidi100' => [
'enable' => env('LOGISTICS_KUAIDI100_ENABLE', false),
'customer' => env('LOGISTICS_KUAIDI100_CUSTOMER', ''),
'key' => env('LOGISTICS_KUAIDI100_KEY', ''),
'query_url' => env('LOGISTICS_KUAIDI100_QUERY_URL', 'https://poll.kuaidi100.com/poll/query.do'),
],
];
4. 支持的快递公司
- 顺丰速运 (sf / shunfeng)
- 京东快递 (jd)
- 更多快递公司可通过快递100文档查询编码
官网查询链接(备用方案)
当未配置快递100 API时,系统会提供官网查询链接:
顺丰速运
- 链接格式:
https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/{运单号} - 特点:需要输入收件人手机号后4位验证
京东物流
- 链接格式:
https://www.jdl.com/#/trackQuery?waybillCode={运单号} - 特点:直接查询,无需验证
使用说明
前端查询界面
位置:业务订单详情 → 物流轨迹
功能:
- 选择快递公司(自动识别/顺丰/京东)
- 点击"查询物流"按钮
- 查看实时物流轨迹
- 备用:点击"顺丰官网查件"或"京东物流查件"
自动识别规则
系统会根据运单号自动识别快递公司:
- 顺丰:以
SF开头 - 京东:以
JD、JDV、JDK、JDEX开头
物流状态说明
- 0 - 在途
- 1 - 揽收
- 2 - 疑难
- 3 - 已签收
- 4 - 退签
- 5 - 派件中
- 6 - 退回
- 7 - 转投
- 10 - 待清关
- 11 - 清关中
- 12 - 已清关
- 13 - 清关异常
- 14 - 收件人拒签
顺丰查询注意事项
为什么查不到顺丰快递?
-
手机号验证
- 顺丰查询需要收件人手机号后4位
- 系统已自动传入订单中的收件人手机号
- 如果查询失败,请检查订单中的手机号是否正确
-
运单号格式
- 确保运单号正确无误
- 顺丰运单号通常以
SF开头
-
快递100配置
- 确认已正确配置
LOGISTICS_KUAIDI100_*环境变量 - 确认快递100账户余额充足
- 确认已正确配置
-
官网查询
- 如果API查询失败,可使用官网链接
- 官网查询需要手动输入手机号后4位
扩展其他快递公司
1. 修改 ExpressTrackService.php
在 resolveCarrier 方法中添加新的快递公司识别:
if ($ec === 'ems') {
return ['carrier' => 'ems', 'kuaidi_com' => 'ems', 'label' => 'EMS'];
}
2. 添加官网链接
在 officialUrls 方法中添加:
return [
'sf' => '...',
'jd' => '...',
'ems' => 'https://www.ems.com.cn/queryList?mailNum=' . $enc,
];
3. 更新前端选项
在 order_list.vue 中添加选项:
<el-option label="EMS" value="ems" />
故障排查
问题1:提示"未配置快递100查询密钥"
解决方案:
- 检查
.env文件中的配置 - 确认
LOGISTICS_KUAIDI100_ENABLE=true - 重启服务器
问题2:查询返回"查询失败"
可能原因:
- 运单号错误
- 快递尚未揽收
- 快递100账户余额不足
- 手机号后4位不匹配(顺丰)
解决方案:
- 核对运单号
- 等待快递揽收后再查询
- 充值快递100账户
- 使用官网链接手动查询
问题3:顺丰查询失败但京东正常
原因: 顺丰查询需要手机号后4位验证
解决方案:
- 确保订单中填写了正确的收件人手机号
- 使用官网链接,手动输入手机号后4位
API 接口说明
查询物流轨迹
接口: GET /tcm.prescriptionOrder/logisticsTrace
参数:
id(必填): 业务订单IDexpress_company(可选): 快递公司 (auto/sf/jd)
返回示例:
{
"carrier": "sf",
"carrier_label": "顺丰速运",
"kuaidi_com": "shunfeng",
"traces": [
{
"time": "2024-01-15 10:30:00",
"context": "快件已签收"
},
{
"time": "2024-01-15 08:00:00",
"context": "派件中"
}
],
"state": "3",
"state_text": "已签收",
"source": "kuaidi100",
"hint": "",
"official_url": "https://www.sf-express.com/...",
"official_urls": {
"sf": "https://www.sf-express.com/...",
"jd": "https://www.jdl.com/..."
},
"tracking_number": "SF1234567890",
"express_company_used": "sf"
}
费用说明
快递100 API
- 按查询次数计费
- 具体价格请咨询快递100官方
- 建议:配置后台缓存减少重复查询
官网查询
- 完全免费
- 需要用户手动跳转
- 顺丰需要手机号验证
更新日志
2024-01-15
- 更新顺丰官网查询链接(新版)
- 更新京东物流查询链接
- 优化手机号后4位自动传入逻辑
- 完善错误提示信息