USPS 国际物流 API 文档
RESTful API · JSON 格式 · 仅支持美国本土 USPS 线路
概览
本平台提供美国本土 USPS 面单创建、订单管理、运单追踪、账户余额与 USDT 充值能力。当前仅支持 US(美国本土) 区域,承运商为 USPS。
https://usps.qd.jeContent-Type:
application/json认证方式: Bearer Token(JWT) 或 HMAC-SHA256 签名(API Key + Secret Key)
认证方式
1. Bearer Token(JWT) —— 登录后获取,适用于网页端与快速测试,有效期 24 小时。
2. HMAC-SHA256 签名 —— 适用于服务端对接,更安全,推荐用于正式集成。
登录 公开
请求
curl -X POST https://usps.qd.je/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"your_username","password":"your_password"}'
成功响应
{
"success": true,
"data": {
"token": "eyJhbGciOi...",
"user": {
"id": 1,
"username": "your_username",
"role": "user",
"displayName": "客户名称"
}
}
}
之后在请求头中携带:Authorization: Bearer <token>
请求
curl -X POST https://usps.qd.je/api/auth/sms/send \
-H "Content-Type: application/json" \
-d '{"phone":"18778090403"}'
成功响应
{
"success": true,
"message": "验证码已发送"
}
验证码有效期 5 分钟,同一手机号 60 秒内只能发送一次。
请求
curl -X POST https://usps.qd.je/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"phone": "18778090403",
"code": "123456",
"username": "newuser",
"password": "123456",
"displayName": "客户A"
}'
成功响应
{
"success": true,
"data": {
"token": "eyJhbGciOi...",
"user": {
"id": 3,
"username": "newuser",
"role": "user",
"displayName": "客户A",
"phone": "18778090403"
}
}
}
注册成功后直接返回 Token,可立即登录使用。同一手机号/用户名不可重复注册。
HMAC-SHA256 签名 用于服务端对接
先登录并调用 POST /api/auth/api-keys 生成 API Key 与 Secret Key(Secret Key 仅创建时返回一次,请妥善保存)。
StringToSign = HTTP_METHOD + "\n" + 完整请求路径(含查询串) + "\n" + 毫秒时间戳 + "\n" + 请求体
Signature = HMAC-SHA256(SecretKey, StringToSign) → 小写十六进制
请求头:
X-API-Key: 你的 API Key
X-Timestamp: Date.now()(毫秒时间戳)
X-Signature: 计算出的十六进制签名
- 时间戳必须在服务器时间 ±5 分钟内
- GET 请求的请求体按空字符串参与签名
- 路径必须包含完整路径(含查询串)
- Secret Key 在数据库中仅存 SHA-256 哈希,无法再次查看
账号与 API 密钥
curl https://usps.qd.je/api/auth/me -H "Authorization: Bearer <token>"
curl -X POST https://usps.qd.je/api/auth/change-password \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"oldPassword":"旧密码","newPassword":"新密码(至少6位)"}'
curl -X POST https://usps.qd.je/api/auth/api-keys \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"label":"production-server"}'
响应
{
"success": true,
"data": {
"apiKey": "sk-a1b2c3d4...",
"secretKey": "f8e7d6c5...",
"label": "production-server",
"message": "请立即保存 Secret Key,之后不再显示。"
}
}
返回当前用户的 API Key 列表(不包含 Secret Key)。管理员可查看全部。
停用指定 API Key。
仅管理员可调用。
curl -X POST https://usps.qd.je/api/auth/users \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"username":"newuser","password":"123456","role":"user","displayName":"客户A"}'
订单
承运商取值:usps。区域取值:us。
创建订单 登录
请求
curl -X POST https://usps.qd.je/api/orders/create \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{
"provider": "usps",
"region": "us",
"sender": {
"name": "Warehouse Manager",
"phone": "+1-732-123-4567",
"address": "600 Blair Rd",
"city": "Carteret",
"state": "NJ",
"country": "US",
"zipCode": "07008"
},
"receiver": {
"name": "John Doe",
"phone": "+1-212-555-0000",
"address": "123 Main St",
"city": "New York",
"state": "NY",
"country": "US",
"zipCode": "10001"
},
"parcels": [
{ "weight": 1.0, "length": 30, "width": 20, "height": 15, "packagingType": "02" }
],
"serviceCode": "GROUND_ADVANTAGE",
"reference": "ORDER-001"
}'
成功响应
{
"success": true,
"data": {
"orderId": "SO20260813...",
"trackingNumber": "9400...",
"provider": "usps",
"region": "us",
"serviceCode": "GROUND_ADVANTAGE",
"serviceName": "Ground Advantage",
"chargeAmount": 15,
"chargeCurrency": "USD",
"balance": 985,
"currency": "USD",
"labelData": "base64...",
"labelFormat": "GIF"
}
}
订单列表 登录
可选查询参数:status(created/cancelled)、date、provider、region、username(管理员)、limit(默认 200)。普通用户只能看自己的订单。
curl "https://usps.qd.je/api/orders?limit=50" -H "Authorization: Bearer <token>"
订单详情 登录
curl https://usps.qd.je/api/orders/SO20260813... -H "Authorization: Bearer <token>"
取消订单 登录
curl -X POST https://usps.qd.je/api/orders/SO20260813.../cancel \
-H "Authorization: Bearer <token>"
获取面单 登录
返回 JSON,含 labelData(base64)与 labelFormat(GIF/PDF)。
返回图片(GIF)或 PDF 二进制流,可直接在浏览器打开。
运费查询 登录
curl -X POST https://usps.qd.je/api/orders/rate \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"provider":"usps","region":"us","sender":{...},"receiver":{...},"parcels":[...],"serviceCode":"GROUND_ADVANTAGE"}'
承运商列表 登录
{
"success": true,
"data": {
"us": {
"name": "USA",
"currency": "USD",
"providers": [
{ "id": "usps", "name": "USPS", "services": [...] }
]
}
}
}
运单追踪 登录
curl "https://usps.qd.je/api/tracking/940011189922..." -H "Authorization: Bearer <token>"
curl "https://usps.qd.je/api/tracking/usps/940011189922..." -H "Authorization: Bearer <token>"
账户与余额
普通用户只能查询本人,管理员可查询任意用户。返回余额、币种、可下单数量、用户统计。
普通用户只看本人记录,管理员看全部。
返回各服务代码的价格。
curl -X POST https://usps.qd.je/api/recharge/recharge \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"userId":2,"amount":100,"currency":"USD"}'
curl -X POST https://usps.qd.je/api/recharge/deduct \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"userId":2,"amount":10,"currency":"USD","reason":"手动扣款"}'
curl -X POST https://usps.qd.je/api/recharge/prices \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"serviceCode":"GROUND_ADVANTAGE","serviceName":"Ground Advantage","zone":"default","price":15,"currency":"USD"}'
仅管理员可调用。
返回所有用户(含余额、订单统计、可下单数量)。
USDT 充值
返回 USDT 收款地址与网络(TRC20)。
curl -X POST https://usps.qd.je/api/usdt/deposit \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"usdtAmount":100}'
curl -X POST https://usps.qd.je/api/usdt/submit \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"depositId":"DEP...","txid":"链上交易哈希"}'
可选 status(pending/submitted/confirmed/rejected)、limit。普通用户只看本人,管理员看全部。
curl -X POST https://usps.qd.je/api/usdt/confirm \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"depositId":"DEP..."}'curl -X POST https://usps.qd.je/api/usdt/reject \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"depositId":"DEP...","remark":"原因"}'查看系统自动检测到的链上转账记录。
手动触发一次 TronGrid 链上扫描。
日志
可选 date、action、username、limit。普通用户只看本人。
返回今日订单数、今日费用等。
错误码
| 状态码 | 含义 |
|---|---|
| 200 | 成功 |
| 400 | 参数错误 / 余额不足 / 状态不允许 |
| 401 | 未认证或 Token 无效(登录失败、签名错误) |
| 403 | 无权限(非管理员 / 非本人数据) |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
所有接口统一返回 { "success": true|false, "data": ..., "message": "..." } 结构。