获取面单 HTML
接口概述
生成包裹的 CN23 面单,并以 HTML 片段返回,可直接嵌入页面或用浏览器打印。
包裹必须已存在,且必须用 WMG 运单号 标识——如果你只有自己的单号,请先调用 获取运单号。
请求信息
- Method: POST
- Path:
/api/create-label-html - Authentication: Bearer Token
请求头
| 字段 | 说明 |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
请求参数
请求体为 JSON 格式,包含以下字段:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Barcode | string | 是 | 包裹的 WMG 运单号,最长 50 个字符。 |
| LabelType | string | 是 | 标签类型。目前仅支持 CN23。最长 10 个字符。 |
| Origin | string | 是 | 起运国家,2 位国家代码,如 SG 表示新加坡、TW 表示台湾。 |
| Destination | string | 是 | 目的国家,2 位国家代码,如 TW 表示台湾、JP 表示日本。 |
请求体示例
json
{
"Barcode": "CY180000662SG",
"LabelType": "CN23",
"Origin": "SG",
"Destination": "JP"
}认证方式
本接口使用 Bearer Token 认证。
请先通过 获取 Token 取得 Token,并以 Authorization: Bearer <Token> 形式发送。
响应信息
响应为 JSON 格式。
响应格式
| 字段 | 类型 | 说明 |
|---|---|---|
| Code | integer | 0 表示成功;非 0 表示失败 |
| Message | string | 可读的结果说明 |
| Data | object | 业务数据;失败时为空数组 [] |
成功响应
- Status Code: 200
json
{
"Code": 0,
"Message": "Success",
"Data": {
"Html": "<div class=\"cn23\"><table><tr><td>...</td></tr></table></div>"
}
}示例中的
Html值已截断,实际响应包含完整的面单标记。
| 字段 | 类型 | 说明 |
|---|---|---|
| Data.Html | string | CN23 面单的 HTML 标记。 |
错误响应
- Status Code: 200(业务逻辑错误)或 4xx/5xx(系统错误)
json
{
"Code": 1,
"Message": "Parcel not found",
"Data": []
}结果码
| Code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 失败 |
示例
Bash
bash
BASE_URL="https://api.postal.test.wmgdelivery.com"
TOKEN="your_access_token"
curl -X POST "$BASE_URL/api/create-label-html" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"Barcode":"CY180000662SG","LabelType":"CN23","Origin":"SG","Destination":"JP"}'Windows PowerShell
powershell
$BASE_URL = "https://api.postal.test.wmgdelivery.com"
$TOKEN = "your_access_token"
$body = @{
Barcode = "CY180000662SG"
LabelType = "CN23"
Origin = "SG"
Destination = "JP"
} | ConvertTo-Json
$response = Invoke-RestMethod -Uri "$BASE_URL/api/create-label-html" -Method Post `
-ContentType "application/json" -Body $body -Headers @{Authorization = "Bearer $TOKEN"}
$response.Data.Html | Out-File -FilePath "label.html" -Encoding utf8Python
python
import requests
BASE_URL = "https://api.postal.test.wmgdelivery.com"
TOKEN = "your_access_token"
resp = requests.post(f"{BASE_URL}/api/create-label-html", json={
"Barcode": "CY180000662SG",
"LabelType": "CN23",
"Origin": "SG",
"Destination": "JP",
}, headers={"Authorization": f"Bearer {TOKEN}"}, timeout=30)
payload = resp.json()
with open("label.html", "w", encoding="utf-8") as fh:
fh.write(payload["Data"]["Html"])Node.js / TypeScript
typescript
import {writeFileSync} from "node:fs";
const BASE_URL = "https://api.postal.test.wmgdelivery.com";
const TOKEN = "your_access_token";
const res = await fetch(`${BASE_URL}/api/create-label-html`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${TOKEN}`,
},
body: JSON.stringify({
Barcode: "CY180000662SG",
LabelType: "CN23",
Origin: "SG",
Destination: "JP",
}),
});
const payload = await res.json();
writeFileSync("label.html", payload.Data.Html, "utf8");PHP
php
<?php
$BASE_URL = 'https://api.postal.test.wmgdelivery.com';
$TOKEN = 'your_access_token';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $BASE_URL . '/api/create-label-html');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $TOKEN,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'Barcode' => 'CY180000662SG',
'LabelType' => 'CN23',
'Origin' => 'SG',
'Destination' => 'JP',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);
$payload = json_decode($response, true);
file_put_contents('label.html', $payload['Data']['Html']);
?>注意事项
Barcode必须是 WMG 运单号,不是你自己的单号。Barcode在匹配前会转为大写;Origin和Destination按原样匹配,请用大写发送。- 本接口没有
Direction参数——方向由你自己的打印样式控制。如需固定页面方向,请使用 获取面单 PDF。 - 生成面单会在包裹上记录一条打单事件,因此会出现在该包裹的轨迹历史中。
- 使用自有面单(self-label)服务的包裹无法通过本接口出单,会返回
The package cannot undergo this operation。 LabelType只校验长度,不影响生成的面单内容。请传CN23。- 其余参数区分大小写。
错误码
| code | message | 说明 |
|---|---|---|
1 | Parcel not found | 你的账号下没有与 Barcode、Origin、Destination 全部匹配的包裹。 |
1 | The package cannot undergo this operation | 该包裹使用自有面单服务,WMG 不为其生成面单。 |
1 | Barcode require | Barcode 缺失或为空。 |
1 | max size of Barcode must be 50 | Barcode 超过 50 个字符。 |
1 | LabelType require | LabelType 缺失或为空。 |
1 | max size of LabelType must be 10 | LabelType 超过 10 个字符。 |
1 | Origin require | Origin 缺失或为空。 |
1 | max size of Origin must be 2 | Origin 超过 2 个字符。 |
1 | Destination require | Destination 缺失或为空。 |
1 | max size of Destination must be 2 | Destination 超过 2 个字符。 |
1 | Error encountered, please contact tech@wmg-group.com with screenshot of error page for resolution. | 未预期的服务端错误。 |
1003 | Token error | Token 缺失、已过期或被新登录顶替。请重新调用 获取 Token。 |