Files
zyt/LOGISTICS_UPDATE_README.md
T
2026-04-07 18:13:03 +08:00

309 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 物流查询功能更新说明
## 更新内容
### 1. 更新官网查询链接
#### 顺丰速运
- **旧链接**`https://ucmp.sf-express.com/cx/#/waybill/waybill-search?waybillNumber={单号}`
- **新链接**`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/{单号}`
- **说明**:更新为顺丰官网最新版查询页面
#### 京东物流
- **旧链接**`https://www.jdl.com/express/tracking/?waybillCodes={单号}`
- **新链接**`https://www.jdl.com/#/trackQuery?waybillCode={单号}`
- **说明**:更新为京东物流最新版查询页面
### 2. 更新文件列表
- `server/app/common/service/ExpressTrackService.php` - 后端服务类
- `admin/src/views/consumer/prescription/order_list.vue` - 前端订单列表页面
### 3. 新增文档
- `LOGISTICS_INTEGRATION_GUIDE.md` - 完整的物流集成指南
- `server/.env.logistics.example` - 环境变量配置示例
- `server/test_logistics.php` - 物流查询测试脚本
---
## 快速开始
### 方案一:使用快递100 API(推荐)
#### 1. 注册快递100账号
访问:https://www.kuaidi100.com/
- 注册企业账号
- 申请API接口权限
- 获取 Customer 和 Key
#### 2. 配置环境变量
`server/.env` 文件中添加:
```env
LOGISTICS_KUAIDI100_CUSTOMER=你的customer
LOGISTICS_KUAIDI100_KEY=你的key
```
#### 3. 重启服务器
```bash
# 重启PHP服务
systemctl restart php-fpm
# 或重启整个应用
```
#### 4. 测试配置
```bash
cd server
php test_logistics.php
```
### 方案二:使用官网链接(免费)
无需配置,系统会自动提供官网查询链接:
- 顺丰速运:需要输入收件人手机号后4位
- 京东物流:直接查询
---
## 使用说明
### 前端操作
1. 进入"业务订单列表"
2. 点击订单查看详情
3. 在"物流轨迹"区域:
- 选择快递公司(自动识别/顺丰/京东)
- 点击"查询物流"按钮
- 查看实时物流轨迹
4. 备用方案:
- 点击"顺丰官网查件"或"京东物流查件"
- 跳转到官网手动查询
### 自动识别规则
系统会根据运单号自动识别快递公司:
- **顺丰**:以 `SF` 开头的运单号
- **京东**:以 `JD``JDV``JDK``JDEX` 开头的运单号
---
## 顺丰查询问题解决
### 问题:查不到顺丰快递
#### 原因分析
1. **手机号验证失败**
- 顺丰查询需要收件人手机号后4位
- 系统会自动从订单中获取手机号
- 如果手机号不正确,查询会失败
2. **运单号错误**
- 确保运单号完整且正确
- 顺丰运单号通常以 `SF` 开头
3. **快递未揽收**
- 刚下单的快递可能还未揽收
- 等待快递员揽收后再查询
4. **快递100配置问题**
- Customer 或 Key 配置错误
- 账户余额不足
#### 解决方案
**方案1:检查订单手机号**
```
1. 打开订单详情
2. 确认"收件人手机号"字段填写正确
3. 重新查询物流
```
**方案2:使用官网查询**
```
1. 点击"顺丰官网查件"链接
2. 在官网页面手动输入手机号后4位
3. 查看物流信息
```
**方案3:检查快递100配置**
```bash
# 1. 查看配置
cat server/.env | grep LOGISTICS_KUAIDI100
# 2. 测试配置
cd server
php test_logistics.php
# 3. 检查日志
tail -f runtime/log/error.log
```
---
## 京东查询问题解决
### 问题:查不到京东快递
#### 原因分析
1. 运单号错误
2. 快递未揽收
3. 快递100配置问题
#### 解决方案
**方案1:核对运单号**
- 确保运单号完整且正确
- 京东运单号通常以 `JD` 开头
**方案2:使用官网查询**
- 点击"京东物流查件"链接
- 京东查询无需手机号验证
**方案3:等待揽收**
- 刚下单的快递可能还未揽收
- 等待1-2小时后再查询
---
## API 接口说明
### 查询物流轨迹
**接口地址:** `GET /tcm.prescriptionOrder/logisticsTrace`
**请求参数:**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 业务订单ID |
| express_company | string | 否 | 快递公司 (auto/sf/jd) |
**返回示例:**
```json
{
"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"
}
```
**物流状态码:**
| 状态码 | 说明 |
|--------|------|
| 0 | 在途 |
| 1 | 揽收 |
| 2 | 疑难 |
| 3 | 已签收 |
| 4 | 退签 |
| 5 | 派件中 |
| 6 | 退回 |
| 7 | 转投 |
| 10 | 待清关 |
| 11 | 清关中 |
| 12 | 已清关 |
| 13 | 清关异常 |
| 14 | 收件人拒签 |
---
## 测试步骤
### 1. 测试配置
```bash
cd server
php test_logistics.php
```
### 2. 测试官网链接
1. 打开浏览器
2. 访问生成的官网链接
3. 确认能正常打开查询页面
### 3. 测试实时查询(需要配置快递100)
1. 在订单中填写真实的快递单号
2. 点击"查询物流"按钮
3. 查看是否返回物流轨迹
### 4. 测试手机号验证(顺丰)
1. 创建订单时填写正确的收件人手机号
2. 查询顺丰快递
3. 确认能正常返回结果
---
## 常见问题
### Q1: 为什么快递100查询失败?
**A:** 可能原因:
1. 未配置 Customer 和 Key
2. 账户余额不足
3. 运单号错误或快递未揽收
4. 网络连接问题
### Q2: 顺丰查询为什么需要手机号?
**A:** 顺丰为了保护用户隐私,查询时需要验证收件人手机号后4位。系统会自动从订单中获取手机号传给快递100。
### Q3: 可以添加其他快递公司吗?
**A:** 可以。参考 `LOGISTICS_INTEGRATION_GUIDE.md` 中的"扩展其他快递公司"章节。
### Q4: 快递100收费吗?
**A:** 是的,快递100按查询次数收费。具体价格请咨询快递100官方。
### Q5: 不配置快递100可以用吗?
**A:** 可以。系统会提供官网查询链接,用户可以跳转到官网手动查询。
---
## 技术支持
### 相关文档
- `LOGISTICS_INTEGRATION_GUIDE.md` - 完整集成指南
- `server/.env.logistics.example` - 配置示例
- 快递100官方文档:https://api.kuaidi100.com/
### 日志查看
```bash
# 查看错误日志
tail -f server/runtime/log/error.log
# 查看应用日志
tail -f server/runtime/log/app.log
```
### 联系方式
如有问题,请查看项目文档或联系技术支持。
---
## 更新历史
### 2024-01-15
- 更新顺丰官网查询链接(新版)
- 更新京东物流查询链接
- 新增完整的集成指南文档
- 新增配置示例文件
- 新增测试脚本
- 优化错误提示信息