最近在做电子面单功能,让后台可以直接通过快递网点的月结账号(客户号、客户接口密码)打印出面单、方便发货,但过程遇到很多坑、网上没有资料,于是整理一份。遇到的坑包括:
打印机和 CLodop 驱动只支持 windows 系统
没有 UI 界面调试,只能改了然后真实地打印出来看
打印出来,还要跟仓库、跟快递公司确定面单是否符合规格
面单存在新老模板问题
具体实现方案如下:
微信物流助手
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/express/introduction.html
只支持老模板(100×180mm),快递公司在两年前已经不接收了,彻底不可用,新的通用尺寸是 76×130mm。
而且必须传微信 openid,为了后续推送之类的。但如果是 app,不一定有 openid,就比较麻烦。
快递 100(快递管家)
https://b.kuaidi100.com/doc/API_V7.0.pdf
这个方案的场景是,先导入各平台的订单到快递管家后台,再统一进行打单,不是自研平台提供服务的场景。这导致了导入和打单是异步的,导入之后要到后台点击一下打印。
虽然提供一个快捷跳转的接口,url 一键打开待打印的订单列表,但接口鉴权有安全性的坑,以及如果多台打印机同时使用,默认打印机选项会相互来回覆盖,有点蛋疼。
另外也提供了页面嵌入插件按钮,可点击唤起打印,但一直提示未登录,未解决好,官方说兼容性不好。
具体:
面单选“微信物流助手”:也是老模板、不可用
面单选快递公司官方:可用
快递 100(企业账号 API)
https://api.kuaidi100.com/document/5f0ff6a32977d50a94e10235.html
电子面单打印:必须要买他们的设备才可以用,节假日不发货
电子面单 HTML:也是老模板、不可用,且不能传模板 id。如果 HTML 缩放大小,打印出来字也会重叠,不行
电子面单图片:base64 图片格式打印模糊问题,无法揽收。试了两种打印机都糊,试了两种 CSS 实现方式(img src 方法、CSS 的 background-image 属性方法),一直解决不了
总得来说,快递 100 就是推荐用自家的打印机再配合“电子面单打印”。
快递鸟
- 电子面单:https://kdniao.com/api-eorder 对接还算方便,可以自己选择模板,各家快递公司都 ok
- 隐私面单:https://kdniao.com/api-safemail 仅支持顺丰,别的快递信息化程度不够,不支持
快递公司官方
待调研,未知