获取 Token
接口概述
用 API 账号的邮箱和密钥换取访问令牌。请先调用本接口:本文档中其余所有接口都需要这里返回的 Token。
请求信息
- Method: POST
- Path:
/api/login - Authentication: 无(本接口用于签发 Token)
请求头
| 字段 | 说明 |
|---|---|
| Content-Type | application/json |
请求参数
请求体为 JSON 格式,包含以下字段:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| UserName | string | 是 | WMG 分配的账号邮箱。必须是合法邮箱地址,最长 64 个字符。 |
| Password | string | 是 | WMG 分配的账号密钥。长度 8~64 个字符。 |
请求体示例
json
{
"UserName": "your_account@example.com",
"Password": "your_secret_key"
}认证方式
本接口无需认证。
请把返回的 Token 放入后续每个请求的 Authorization 头:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...响应信息
响应为 JSON 格式。
响应格式
| 字段 | 类型 | 说明 |
|---|---|---|
| Code | integer | 0 表示成功;非 0 表示失败 |
| Message | string | 可读的结果说明 |
| Data | object | 业务数据;失败时为空数组 [] |
成功响应
- Status Code: 200
json
{
"Code": 0,
"Message": "Success",
"Data": {
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MTAzODExMzIsIm5iZiI6MTcxMDM4MTEzMiwiaWQiOjJ9.CoafVH75GhgwJjgBZEfqqISY45mgRBb-4La4qdCH2p0",
"Expire": 1710409932
}
}| 字段 | 类型 | 说明 |
|---|---|---|
| Data.Token | string | 访问令牌。调用其他接口时以 Authorization: Bearer <Token> 形式发送。 |
| Data.Expire | integer | 绝对过期时间,10 位 UNIX 秒级时间戳。 |
错误响应
- Status Code: 200(业务逻辑错误)或 4xx/5xx(系统错误)
json
{
"Code": 1,
"Message": "Invalid Email or Key.",
"Data": []
}结果码
| Code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 失败 |
示例
Bash
bash
BASE_URL="https://api.postal.test.wmgdelivery.com"
curl -X POST "$BASE_URL/api/login" \
-H "Content-Type: application/json" \
-d '{"UserName":"your_account@example.com","Password":"your_secret_key"}'Windows PowerShell
powershell
$BASE_URL = "https://api.postal.test.wmgdelivery.com"
$body = @{
UserName = "your_account@example.com"
Password = "your_secret_key"
} | ConvertTo-Json
$response = Invoke-RestMethod -Uri "$BASE_URL/api/login" -Method Post `
-ContentType "application/json" -Body $body
$response | ConvertTo-Json -Depth 10
# 缓存该 Token 并复用,直到接近 Data.Expire 再重新获取
$token = $response.Data.TokenPython
python
import requests
BASE_URL = "https://api.postal.test.wmgdelivery.com"
resp = requests.post(f"{BASE_URL}/api/login", json={
"UserName": "your_account@example.com",
"Password": "your_secret_key",
}, timeout=10)
payload = resp.json()
print(payload)
# 缓存该 Token 并复用,直到接近 Data.Expire 再重新获取
token = payload["Data"]["Token"]Node.js / TypeScript
typescript
const BASE_URL = "https://api.postal.test.wmgdelivery.com";
const res = await fetch(`${BASE_URL}/api/login`, {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({
UserName: "your_account@example.com",
Password: "your_secret_key",
}),
});
const payload = await res.json();
console.log(payload);
// 缓存该 Token 并复用,直到接近 Data.Expire 再重新获取
const token = payload.Data.Token;PHP
php
<?php
$BASE_URL = 'https://api.postal.test.wmgdelivery.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $BASE_URL . '/api/login');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'UserName' => 'your_account@example.com',
'Password' => 'your_secret_key',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
curl_close($ch);
$payload = json_decode($response, true);
echo json_encode($payload, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . "\n";
// 缓存该 Token 并复用,直到接近 Data.Expire 再重新获取
$token = $payload['Data']['Token'];
?>注意事项
- Token 自签发起有效期 1 小时(3600 秒)。请读取
Data.Expire判断过期时间,不要把有效期写死在代码里——Expire才是权威值。 - 每个账号同一时刻只有一个 Token 有效。重新获取 Token 会使上一次签发的 Token 立即失效,因此请缓存 Token 并复用到接近过期,不要每个请求都重新登录。
- 没有刷新接口。Token 过期后重新调用本接口获取。
- Token 通常通过
Authorization: Bearer <Token>发送,也支持x-token: <Token>头。 - 所有参数区分大小写。
错误码
| code | message | 说明 |
|---|---|---|
1 | Invalid Email or Key. | 没有匹配 UserName 和 Password 的 API 账号。 |
1 | Login fail | 账号匹配成功但签发 Token 失败。请重试;持续失败请联系 tech@wmg-group.com。 |
1 | UserName require | UserName 缺失或为空。 |
1 | UserName not a valid email address | UserName 不是合法邮箱地址。 |
1 | max size of UserName must be 64 | UserName 超过 64 个字符。 |
1 | Password require | Password 缺失或为空。 |
1 | min size of Password must be 8 | Password 少于 8 个字符。 |
1 | max size of Password must be 64 | Password 超过 64 个字符。 |
1 | Error encountered, please contact tech@wmg-group.com with screenshot of error page for resolution. | 未预期的服务端错误。 |
1003 | Token error | 其他接口在 Token 缺失、已过期或被新登录顶替时返回。请重新调用本接口获取新 Token。 |