Skip to content

获取面单 HTML

接口概述

生成包裹的 CN23 面单,并以 HTML 片段返回,可直接嵌入页面或用浏览器打印。

包裹必须已存在,且必须用 WMG 运单号 标识——如果你只有自己的单号,请先调用 获取运单号

请求信息

  • Method: POST
  • Path: /api/create-label-html
  • Authentication: Bearer Token

请求头

字段说明
Content-Typeapplication/json
AuthorizationBearer <token>

请求参数

请求体为 JSON 格式,包含以下字段:

参数类型必填说明
Barcodestring包裹的 WMG 运单号,最长 50 个字符。
LabelTypestring标签类型。目前仅支持 CN23。最长 10 个字符。
Originstring起运国家,2 位国家代码,如 SG 表示新加坡、TW 表示台湾。
Destinationstring目的国家,2 位国家代码,如 TW 表示台湾、JP 表示日本。

请求体示例

json
{
    "Barcode": "CY180000662SG",
    "LabelType": "CN23",
    "Origin": "SG",
    "Destination": "JP"
}

认证方式

本接口使用 Bearer Token 认证。

请先通过 获取 Token 取得 Token,并以 Authorization: Bearer <Token> 形式发送。

响应信息

响应为 JSON 格式。

响应格式

字段类型说明
Codeinteger0 表示成功;非 0 表示失败
Messagestring可读的结果说明
Dataobject业务数据;失败时为空数组 []

成功响应

  • Status Code: 200
json
{
    "Code": 0,
    "Message": "Success",
    "Data": {
        "Html": "<div class=\"cn23\"><table><tr><td>...</td></tr></table></div>"
    }
}

示例中的 Html 值已截断,实际响应包含完整的面单标记。

字段类型说明
Data.HtmlstringCN23 面单的 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 utf8

Python

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 在匹配前会转为大写;OriginDestination 按原样匹配,请用大写发送。
  • 本接口没有 Direction 参数——方向由你自己的打印样式控制。如需固定页面方向,请使用 获取面单 PDF
  • 生成面单会在包裹上记录一条打单事件,因此会出现在该包裹的轨迹历史中。
  • 使用自有面单(self-label)服务的包裹无法通过本接口出单,会返回 The package cannot undergo this operation
  • LabelType 只校验长度,不影响生成的面单内容。请传 CN23
  • 其余参数区分大小写。

错误码

codemessage说明
1Parcel not found你的账号下没有与 BarcodeOriginDestination 全部匹配的包裹。
1The package cannot undergo this operation该包裹使用自有面单服务,WMG 不为其生成面单。
1Barcode requireBarcode 缺失或为空。
1max size of Barcode must be 50Barcode 超过 50 个字符。
1LabelType requireLabelType 缺失或为空。
1max size of LabelType must be 10LabelType 超过 10 个字符。
1Origin requireOrigin 缺失或为空。
1max size of Origin must be 2Origin 超过 2 个字符。
1Destination requireDestination 缺失或为空。
1max size of Destination must be 2Destination 超过 2 个字符。
1Error encountered, please contact tech@wmg-group.com with screenshot of error page for resolution.未预期的服务端错误。
1003Token errorToken 缺失、已过期或被新登录顶替。请重新调用 获取 Token