顺丰/中通/跨越快递查询为什么要手机号?phone参数避坑指南(隐私号怎么填)
调用万维易源全球快递查询 API 时,顺丰、中通、跨越这三家必须传
phone(收件人手机尾号后 4 位),否则查不到轨迹。本文讲清为什么、哪些快递要传、隐私号 / 虚拟号怎么填,并给出可直接抄的代码示例,帮你少踩坑。
一、为什么顺丰要手机号
顺丰、中通、跨越对物流查询做了隐私保护:不传手机尾号,接口返回"查询失败 / 无权限"。这是快递公司侧的风控要求,不是 API 的 bug。传对尾号后 4 位,轨迹立刻返回。
注意:圆通、韵达、申通、邮政、京东、EMS、DHL、UPS 等大多不需要传 phone;只有顺丰、中通、跨越三家强制。
二、哪些快递要传 phone(速查表)
| 快递公司 | 是否必传 phone | 说明 |
|---|---|---|
| 顺丰 | ✅ 必传 | 手机尾号后 4 位 |
| 中通 | ✅ 必传 | 手机尾号后 4 位 |
| 跨越 | ✅ 必传 | 手机尾号后 4 位 |
| 圆通 / 韵达 / 申通 / 邮政 / 京东 / EMS / DHL / UPS 等 | ❌ 不传 | 单号即可查 |
三、隐私号 / 虚拟号怎么填
现在电商普遍用隐私号(如 138****1234 或虚拟中间号 17012345678)。填写规则:
- 普通隐私号:取收件人真实手机尾号后 4 位(如
13800001234传1234)。 - 虚拟中间号(如 170/171 开头):直接传该虚拟号的后 4 位。
- 带横杠格式
13xxxxx1-234:取最后 4 位1234,不要带横杠。 - 拿不准时,可让用户在下单页或"查看物流"时补填尾号,再发起查询。
四、代码示例
Python(网关与鉴权以阿里云控制台为准):
import requests
APPCODE = "你的阿里云APPCODE"
GATEWAY = "商品详情页API文档中的请求地址"
def track(nu, phone=""):
resp = requests.get(
f"https://{APPCODE}@{GATEWAY}",
params={
"com": "auto", "nu": nu, "phone": phone},
)
body = resp.json()["showapi_res_body"]
if not body.get("flag"):
# flag=false 通常是单号识别失败或未传必填 phone
return None
return body
# 顺丰必须传 phone
print(track("SF1234567890", phone="1234"))
# 圆通可不传
print(track("YT1234567890"))
Node(订单页代理,凭证放后端):
app.get("/api/track/:nu", async (req, res) => {
const r = await fetch(`https://${
APPCODE}@${
GATEWAY}`, {
params: {
com: "auto", nu: req.params.nu, phone: req.query.phone || "" },
});
const body = (await r.json()).showapi_res_body;
if (!body.flag) return res.json({
ok: false, reason: "请检查单号或顺丰/中通/跨越手机尾号" });
res.json({
company: body.expTextName, status: body.status, trace: body.data });
});
五、两个常见翻车点
- 顺丰不传 phone → flag=false:先确认是不是这三家,是就补尾号。
- 隐私号填错 → 一直查不到:引导用户回填真实尾号后 4 位,或改用虚拟号后 4 位。
六、常见问题(FAQ)
Q:所有快递都要手机号吗?
A:不是。只有顺丰、中通、跨越三家强制;其余大多单号即可查。
Q:尾号传几位?
A:后 4 位,纯数字,不带横杠或空格。
Q:用户用了隐私号怎么办?
A:取隐私号(虚拟号)本身的后 4 位传入即可。
Q:传了 phone 还是查不到?
A:检查单号是否填错、快递公司是否识别正确(com=auto 通常够用),或单号本身暂无轨迹。
Q:数据多久更新?
A:与对应快递官网同步更新。
相关商品
👉 快递按次查询(适合偶发查询):https://market.aliyun.com/detail/cmapi033187#sku=yuncode27187000015
👉 快递按单查询(高频复查、降本):https://market.aliyun.com/detail/cmapi00034869#sku=yuncode28869000013