# 发货地址未开通电子面单服务 - 排查指南 ## 📋 问题描述 创建运单时提示: ``` 发货地址未开通电子面单服务。当前发货地址: 江苏省南京市浦口区沿江街道浦洲路39号沿海创中心A区301室 请在抖音后台开通电子面单服务,并确保发货地址与开通时填写的地址完全一致(包括省市区、街道和详细地址)。 ``` ## 🔍 当前配置的发货地址 根据 `appsettings.json` 配置: - **省**: 江苏省 - **市**: 南京市 - **区**: 浦口区 - **街道**: 沿江街道 - **详细地址**: 浦洲路39号沿海创中心A区301室 - **完整地址**: 江苏省南京市浦口区沿江街道浦洲路39号沿海创中心A区301室 ## ✅ 排查步骤 ### 1. 检查抖音后台是否已开通电子面单服务 1. 登录抖音开放平台:https://open.jinritemai.com/ 2. 进入 **物流管理** → **电子面单服务** 3. 确认是否已开通电子面单服务 4. 如果未开通,需要先开通 ### 2. 检查抖音后台填写的发货地址 在抖音后台的电子面单服务配置中,检查填写的发货地址是否与当前配置**完全一致**: **必须完全匹配的字段:** - ✅ 省份:`江苏省` - ✅ 城市:`南京市` - ✅ 区县:`浦口区` - ✅ 街道:`沿江街道`(如果有) - ✅ 详细地址:`浦洲路39号沿海创中心A区301室` **注意事项:** - 地址中的**每个字符**都必须完全一致 - 不能有多余的空格 - 不能有标点符号差异(如"301室" vs "301 室") - 街道名称必须完全一致(如"沿江街道" vs "沿江街道办") ### 3. 检查服务器上的配置 在宝塔服务器上,检查 `appsettings.json` 文件中的配置: ```bash # 进入部署目录 cd /www/wwwroot/douyin-api/deploy_single_site_20251201_112959 # 查看配置文件 cat appsettings.json | grep -A 10 "Sender" ``` 确保配置如下: ```json { "Douyin": { "SenderName": "你的发货人姓名", "SenderPhone": "你的发货人电话", "SenderAddress": "浦洲路39号沿海创中心A区301室", "SenderProvince": "江苏省", "SenderCity": "南京市", "SenderDistrict": "浦口区", "SenderStreet": "沿江街道" } } ``` ### 4. 查看服务器日志 查看服务器日志,确认实际发送给抖音的地址格式: ```bash # 查看应用日志(如果使用 Supervisor) tail -f /www/wwwroot/douyin-api/logs/app.log # 或者查看系统日志 journalctl -u douyin-api -f ``` 在日志中查找: - `发货地址信息` - 查看实际配置的地址 - `创建运单请求参数` - 查看发送给抖音的完整参数(Debug 级别) ### 5. 常见问题及解决方案 #### 问题 1:地址格式不一致 **症状**:抖音后台的地址与配置中的地址有细微差别 **解决方案**: 1. 登录抖音后台,查看电子面单服务中填写的**完整地址** 2. 将服务器上的 `appsettings.json` 中的地址修改为与抖音后台**完全一致** 3. 重启应用 #### 问题 2:街道信息缺失或不一致 **症状**:抖音后台填写了街道,但配置中没有,或街道名称不一致 **解决方案**: 1. 确认抖音后台是否填写了街道信息 2. 如果填写了,确保 `SenderStreet` 字段与抖音后台完全一致 3. 如果抖音后台没有填写街道,将 `SenderStreet` 设置为空字符串 `""` #### 问题 3:详细地址格式不一致 **症状**:详细地址中的空格、标点符号不一致 **解决方案**: 1. 对比抖音后台的详细地址和配置中的 `SenderAddress` 2. 确保完全一致,包括: - 空格位置 - 标点符号(如"301室" vs "301 室") - 数字格式(如"39号" vs "39 号") #### 问题 4:未开通电子面单服务 **症状**:抖音后台根本没有开通电子面单服务 **解决方案**: 1. 登录抖音开放平台 2. 进入 **物流管理** → **电子面单服务** 3. 按照提示开通电子面单服务 4. 在开通时,填写与 `appsettings.json` 中**完全一致**的发货地址 ## 🔧 修改配置后的操作 1. **修改 `appsettings.json`** 后,需要重启应用: ```bash # 如果使用 Supervisor supervisorctl restart douyin-api # 或者直接重启进程 pkill -f DouyinLogistics.API.dll cd /www/wwwroot/douyin-api/deploy_single_site_20251201_112959 dotnet DouyinLogistics.API.dll --urls http://0.0.0.0:5000 & ``` 2. **验证配置**:修改后,可以通过 Swagger 测试创建运单接口,查看日志确认地址是否正确 ## 📝 地址格式示例 **正确的地址格式:** ``` 省份: 江苏省 城市: 南京市 区县: 浦口区 街道: 沿江街道 详细地址: 浦洲路39号沿海创中心A区301室 ``` **发送给抖音的格式:** ```json { "sender_info": { "address": { "country_code": "CHN", "province_name": "江苏省", "city_name": "南京市", "district_name": "浦口区", "street_name": "沿江街道", "detail_address": "浦洲路39号沿海创中心A区301室" } } } ``` ## ⚠️ 重要提示 1. **地址必须完全一致**:抖音会严格校验地址,任何细微差别都会导致失败 2. **建议使用环境变量**:生产环境建议使用环境变量配置,而不是直接修改 `appsettings.json` 3. **先开通再测试**:确保抖音后台已开通电子面单服务后再测试创建运单 ## 📞 如果问题仍未解决 1. 查看服务器日志中的详细错误信息 2. 对比抖音后台的地址配置和服务器上的配置 3. 联系抖音开放平台技术支持,提供: - 错误信息 - 发货地址配置 - 请求参数(从日志中获取)