创新互联小程序教程:微信小程序运力方使用·previewTemplate

logistics.previewTemplate

本接口应在服务器端调用,详细说明参见 服务端API。

王屋网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

本接口支持 云调用。需开发者工具版本 >= 1.02.1904090(最新 稳定版下载)

wx-server-sdk >= 0.4.0

预览面单模板。用于调试面单模板使用。

调用方式:

  • HTTPS 调用
  • 云调用

HTTPS 调用

请求地址

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

请求参数

属性 类型 默认值 必填 说明
access_tokenstring接口调用凭证
waybill_idstring运单 ID
waybill_templatestring面单 HTML 模板内容(需经 Base64 编码)
waybill_datastring面单数据。详情参考下单事件返回值中的 WaybillData
customObject商户下单数据,格式是商户侧下单 API 中的请求体

返回值

Object

属性 类型 说明
waybill_idstring运单 ID
rendered_waybill_templatestring渲染后的面单 HTML 文件(已经过 Base64 编码)
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明 最低版本
0成功
-1其他错误
40199运单 ID 错误,未查到运单
9300507Token 不正确
9300502预览模板中出现该错误,一般是waybill_data数据错误
9300512模板格式错误,渲染失败

请求数据示例

{
  "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": "海珠区",
      "address": "XX路XX号XX大厦XX栋XX"
    },
    "receiver": {
      "name": "王小蒙",
      "tel": "18610000000",
      "mobile": "020-77777777",
      "company": "公司名",
      "post_code": "654321",
      "country": "中国",
      "province": "广东省",
      "city": "广州市",
      "area": "天河区",
      "address": "XX路XX号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": "标准快递"
    }
  }
}

返回数据示例

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

模板渲染语法

  1. 所有渲染语法由##开始,可参考示例。
  2. ##VAR(key) 用参数key对应的值填充。支持的参数如下表格所示
key value
sys.waybillid运单 ID
sys.wxaappid商户小程序 APPID
waybilldata.*下单事件返回中的WaybillData,快递侧自定义的数据
custom.*是商户侧下单 API 中传入的字段
custom.order_id唯一标识订单的 ID,由商户传入
custom.custom_remark快递备注,会打印到面单的自定义区,比如"易碎物品"
custom.sender.name发件人名字
custom.sender.tel发件人座机号码
custom.sender.mobile发件人手机号码
custom.sender.company发件人公司名
custom.sender.post_code发件人邮编
custom.sender.country发件人所在国家
custom.sender.province发件人省份
custom.sender.city发件人地区/市
custom.sender.area发件人区/县
custom.sender.address发件人详细地址
custom.receiver.name收件人名字
custom.receiver.tel收件人座机号码
custom.receiver.mobile收件人手机号码
custom.receiver.company收件人公司名
custom.receiver.post_code收件人邮编
custom.receiver.country收件人所在国家
custom.receiver.province收件人省份
custom.receiver.city收件人地区/市
custom.receiver.area收件人区/县
custom.receiver.address收件人详细地址
custom.cargo.count包裹数量
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商品数量
custom.insured.use_insured是否使用保价
custom.insured.insured_value报价金额,单位是分
custom.service.service_type服务类型 ID
custom.service.service_name服务名称
  1. ##TIME(DATE) 用日期填充当前位置,格式为%Y/%m/%d,比如2018/11/22。
  2. ##TIME(TIME) 用时间填充当前位置,格式为%H:%M:%S,比如17:54:06。
  3. ##TIME(FULL) 用日期时间填充当前位置,格式为%Y/%m/%d %H:%M:%S,比如2018/11/22 17:54:06。
  4. ##STRBLOAT(VAR(sys.waybillid)) 获取运单 ID,然后在每个字符间填充空格。
  5. ##CODE128(VAR(sys.waybillid)) 获取运单 ID,然后转换成CODE128条码,图片为base64编码。
  6. ##QRCODE(VAR(sys.waybillid)) 获取运单 ID,然后转换为二维码,图片为base64编码。
  7. ##WXASUNCODE(VAR(sys.wxaappid)) 获取商户的小程序码,图片为base64编码。

举例,如果想在面单上打印一个集包地信息的条形码,可以在面单中增加:


云调用

云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

接口方法

openapi.logistics.previewTemplate

需在 config.json 中配置 logistics.previewTemplate API 的权限, 详情

请求参数

属性 类型 默认值 必填 说明
waybillIdstring运单 ID
waybillTemplatestring面单 HTML 模板内容(需经 Base64 编码)
waybillDatastring面单数据。详情参考下单事件返回值中的 WaybillData
customObject商户下单数据,格式是商户侧下单 API 中的请求体

返回值

Object

属性 类型 说明
waybillIdstring运单 ID
renderedWaybillTemplatestring渲染后的面单 HTML 文件(已经过 Base64 编码)
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明 最低版本
0成功

异常

Object

抛出的异常

属性 类型 说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明 最低版本
-1其他错误
40199运单 ID 错误,未查到运单
9300507Token 不正确
9300502预览模板中出现该错误,一般是waybill_data数据错误
9300512模板格式错误,渲染失败

请求数据示例

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: '海珠区',
            address: 'XX路XX号XX大厦XX栋XX',
            postCode: '123456'
          },
          receiver: {
            name: '王小蒙',
            tel: '18610000000',
            mobile: '020-77777777',
            company: '公司名',
            country: '中国',
            province: '广东省',
            city: '广州市',
            area: '天河区',
            address: 'XX路XX号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: '标准快递'
          },
          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
  }
}

返回数据示例

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

本文标题:创新互联小程序教程:微信小程序运力方使用·previewTemplate
链接地址:http://www.stwzsj.com/qtweb/news44/5144.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联