微信小程序 運(yùn)力方使用·previewTemplate

2022-05-11 15:18 更新

logistics.previewTemplate

本接口應(yīng)在服務(wù)器端調(diào)用,詳細(xì)說明參見服務(wù)端API。
本接口支持云調(diào)用。需開發(fā)者工具版本 >= 1.02.1904090(最新穩(wěn)定版下載
wx-server-sdk >= 0.4.0

預(yù)覽面單模板。用于調(diào)試面單模板使用。

調(diào)用方式:

  • HTTPS 調(diào)用
  • 云調(diào)用

HTTPS 調(diào)用

請求地址

POST https://api.weixin.qq.com/cgi-bin/express/delivery/template/preview?access_token=ACCESS_TOKEN

請求參數(shù)

屬性 類型 默認(rèn)值 必填 說明
access_token string 接口調(diào)用憑證
waybill_id string 運(yùn)單 ID
waybill_template string 面單 HTML 模板內(nèi)容(需經(jīng) Base64 編碼)
waybill_data string 面單數(shù)據(jù)。詳情參考下單事件返回值中的 WaybillData
custom Object 商戶下單數(shù)據(jù),格式是商戶側(cè)下單 API 中的請求體

返回值

Object

屬性 類型 說明
waybill_id string 運(yùn)單 ID
rendered_waybill_template string 渲染后的面單 HTML 文件(已經(jīng)過 Base64 編碼)
errcode number 錯(cuò)誤碼
errmsg string 錯(cuò)誤信息

errcode 的合法值

說明 最低版本
0 成功
-1 其他錯(cuò)誤
40199 運(yùn)單 ID 錯(cuò)誤,未查到運(yùn)單
9300507 Token 不正確
9300502 預(yù)覽模板中出現(xiàn)該錯(cuò)誤,一般是waybill_data數(shù)據(jù)錯(cuò)誤
9300512 模板格式錯(cuò)誤,渲染失敗

請求數(shù)據(jù)示例

{
  "waybill_id": "1234567890123",
  "waybill_data": "##ZTO_mark##11-22-33##ZTO_bagAddr##廣州##",
  "waybill_template": "PGh0bWw+dGVzdDwvaHRtbD4=",
  "custom": {
    "order_id": "012345678901234567890123456789",
    "openid": "oABC123456",
    "delivery_id": "ZTO",
    "biz_id": "xyz",
    "custom_remark": "易碎物品",
    "sender": {
      "name": "張三",
      "tel": "18666666666",
      "mobile": "020-88888888",
      "company": "公司名",
      "post_code": "123456",
      "country": "中國",
      "province": "廣東省",
      "city": "廣州市",
      "area": "海珠區(qū)",
      "address": "XX路XX號(hào)XX大廈XX棟XX"
    },
    "receiver": {
      "name": "王小蒙",
      "tel": "18610000000",
      "mobile": "020-77777777",
      "company": "公司名",
      "post_code": "654321",
      "country": "中國",
      "province": "廣東省",
      "city": "廣州市",
      "area": "天河區(qū)",
      "address": "XX路XX號(hào)XX大廈XX棟XX"
    },
    "shop": {
      "wxa_path": "/index/index?from=waybill",
      "img_url": "https://mmbiz.qpic.cn/mmbiz_png/KfrZwACMrmwbPGicysN6kibW0ibXwzmA3mtTwgSsdw4Uicabduu2pfbfwdKicQ8n0v91kRAUX6SDESQypl5tlRwHUPA/640",
      "goods_name": "一千零一夜鉆石包&愛馬仕柏金鉆石包",
      "goods_count": 2
    },
    "cargo": {
      "count": 2,
      "weight": 5.5,
      "space_x": 30.5,
      "space_y": 20,
      "space_z": 20,
      "detail_list": [
        {
          "name": "一千零一夜鉆石包",
          "count": 1
        },
        {
          "name": "愛馬仕柏金鉆石包",
          "count": 1
        }
      ]
    },
    "insured": {
      "use_insured": 1,
      "insured_value": 10000
    },
    "service": {
      "service_type": 0,
      "service_name": "標(biāo)準(zhǔn)快遞"
    }
  }
}

返回?cái)?shù)據(jù)示例

{
  "waybill_id": "1234567890123",
  "rendered_waybill_template": "PGh0bWw+dGVzdDwvaHRtbD4="
}

模板渲染語法

  1. 所有渲染語法由##開始,可參考示例。
  2. ##VAR(key) 用參數(shù)key對(duì)應(yīng)的值填充。支持的參數(shù)如下表格所示
key value
sys.waybillid 運(yùn)單 ID
sys.wxaappid 商戶小程序 APPID
waybilldata.* 下單事件返回中的WaybillData,快遞側(cè)自定義的數(shù)據(jù)
custom.* 是商戶側(cè)下單 API 中傳入的字段
custom.order_id 唯一標(biāo)識(shí)訂單的 ID,由商戶傳入
custom.custom_remark 快遞備注,會(huì)打印到面單的自定義區(qū),比如"易碎物品"
custom.sender.name 發(fā)件人名字
custom.sender.tel 發(fā)件人座機(jī)號(hào)碼
custom.sender.mobile 發(fā)件人手機(jī)號(hào)碼
custom.sender.company 發(fā)件人公司名
custom.sender.post_code 發(fā)件人郵編
custom.sender.country 發(fā)件人所在國家
custom.sender.province 發(fā)件人省份
custom.sender.city 發(fā)件人地區(qū)/市
custom.sender.area 發(fā)件人區(qū)/縣
custom.sender.address 發(fā)件人詳細(xì)地址
custom.receiver.name 收件人名字
custom.receiver.tel 收件人座機(jī)號(hào)碼
custom.receiver.mobile 收件人手機(jī)號(hào)碼
custom.receiver.company 收件人公司名
custom.receiver.post_code 收件人郵編
custom.receiver.country 收件人所在國家
custom.receiver.province 收件人省份
custom.receiver.city 收件人地區(qū)/市
custom.receiver.area 收件人區(qū)/縣
custom.receiver.address 收件人詳細(xì)地址
custom.cargo.count 包裹數(shù)量
custom.cargo.weight 包裹總重量,單位是千克(kg)
custom.cargo.space_x 包裹長度,單位是厘米(cm)
custom.cargo.space_y 包裹寬度,單位是厘米(cm)
custom.cargo.space_z 包裹高度,單位是厘米(cm)
custom.shop.goods_name 商品名稱
custom.shop.goods_count 商品數(shù)量
custom.insured.use_insured 是否使用保價(jià)
custom.insured.insured_value 報(bào)價(jià)金額,單位是分
custom.service.service_type 服務(wù)類型 ID
custom.service.service_name 服務(wù)名稱
  1. ##TIME(DATE) 用日期填充當(dāng)前位置,格式為%Y/%m/%d,比如2018/11/22。
  2. ##TIME(TIME) 用時(shí)間填充當(dāng)前位置,格式為%H:%M:%S,比如17:54:06。
  3. ##TIME(FULL) 用日期時(shí)間填充當(dāng)前位置,格式為%Y/%m/%d %H:%M:%S,比如2018/11/22 17:54:06。
  4. ##STRBLOAT(VAR(sys.waybillid)) 獲取運(yùn)單 ID,然后在每個(gè)字符間填充空格。
  5. ##CODE128(VAR(sys.waybillid)) 獲取運(yùn)單 ID,然后轉(zhuǎn)換成CODE128條碼,圖片為base64編碼。
  6. ##QRCODE(VAR(sys.waybillid)) 獲取運(yùn)單 ID,然后轉(zhuǎn)換為二維碼,圖片為base64編碼。
  7. ##WXASUNCODE(VAR(sys.wxaappid)) 獲取商戶的小程序碼,圖片為base64編碼。
舉例,如果想在面單上打印一個(gè)集包地信息的條形碼,可以在面單中增加:
<img src="data:image/jpeg;base64, ##CODE128(VAR(waybilldata.ZTO_bagAddr))" class="block_5__barCode">

云調(diào)用

云調(diào)用是小程序·云開發(fā)提供的在云函數(shù)中調(diào)用微信開放接口的能力,需要在云函數(shù)中通過 wx-server-sdk 使用。

接口方法

openapi.logistics.previewTemplate
需在 config.json 中配置 logistics.previewTemplate API 的權(quán)限,詳情

請求參數(shù)

屬性 類型 默認(rèn)值 必填 說明
waybillId string 運(yùn)單 ID
waybillTemplate string 面單 HTML 模板內(nèi)容(需經(jīng) Base64 編碼)
waybillData string 面單數(shù)據(jù)。詳情參考下單事件返回值中的 WaybillData
custom Object 商戶下單數(shù)據(jù),格式是商戶側(cè)下單 API 中的請求體

返回值

Object

屬性 類型 說明
waybillId string 運(yùn)單 ID
renderedWaybillTemplate string 渲染后的面單 HTML 文件(已經(jīng)過 Base64 編碼)
errCode number 錯(cuò)誤碼
errMsg string 錯(cuò)誤信息

errCode 的合法值

說明 最低版本
0 成功

異常

Object

拋出的異常

屬性 類型 說明
errCode number 錯(cuò)誤碼
errMsg string 錯(cuò)誤信息

errCode 的合法值

說明 最低版本
-1 其他錯(cuò)誤
40199 運(yùn)單 ID 錯(cuò)誤,未查到運(yùn)單
9300507 Token 不正確
9300502 預(yù)覽模板中出現(xiàn)該錯(cuò)誤,一般是waybill_data數(shù)據(jù)錯(cuò)誤
9300512 模板格式錯(cuò)誤,渲染失敗

請求數(shù)據(jù)示例

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.logistics.previewTemplate({
        custom: {
          openid: 'oABC123456',
          sender: {
            name: '張三',
            tel: '18666666666',
            mobile: '020-88888888',
            company: '公司名',
            country: '中國',
            province: '廣東省',
            city: '廣州市',
            area: '海珠區(qū)',
            address: 'XX路XX號(hào)XX大廈XX棟XX',
            postCode: '123456'
          },
          receiver: {
            name: '王小蒙',
            tel: '18610000000',
            mobile: '020-77777777',
            company: '公司名',
            country: '中國',
            province: '廣東省',
            city: '廣州市',
            area: '天河區(qū)',
            address: 'XX路XX號(hào)XX大廈XX棟XX',
            postCode: '654321'
          },
          shop: {
            wxaPath: '/index/index?from=waybill',
            imgUrl: 'https://mmbiz.qpic.cn/mmbiz_png/KfrZwACMrmwbPGicysN6kibW0ibXwzmA3mtTwgSsdw4Uicabduu2pfbfwdKicQ8n0v91kRAUX6SDESQypl5tlRwHUPA/640',
            goodsName: '一千零一夜鉆石包&愛馬仕柏金鉆石包',
            goodsCount: 2
          },
          cargo: {
            count: 2,
            weight: 5.5,
            spaceX: 30.5,
            spaceY: 20,
            spaceZ: 20,
            detailList: [
              {
                name: '一千零一夜鉆石包',
                count: 1
              },
              {
                name: '愛馬仕柏金鉆石包',
                count: 1
              }
            ]
          },
          insured: {
            useInsured: 1,
            insuredValue: 10000
          },
          service: {
            serviceType: 0,
            serviceName: '標(biāo)準(zhǔn)快遞'
          },
          orderId: '012345678901234567890123456789',
          deliveryId: 'ZTO',
          bizId: 'xyz',
          customRemark: '易碎物品'
        },
        waybillId: '1234567890123',
        waybillData: '##ZTO_mark##11-22-33##ZTO_bagAddr##廣州##',
        waybillTemplate: 'PGh0bWw+dGVzdDwvaHRtbD4='
      })
    return result
  } catch (err) {
    return err
  }
}

返回?cái)?shù)據(jù)示例

{
  "waybillId": "1234567890123",
  "renderedWaybillTemplate": "PGh0bWw+dGVzdDwvaHRtbD4=",
  "errMsg": "openapi.logistics.previewTemplate:ok"
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)