编程语言
首页 > 编程语言> > 发货单打印python版

发货单打印python版

作者:互联网

刚开工,大家都在逗利是,叙友情…难得既没有新需求又没有老bug的时间,正好整理一下之前玩的一些东东。

发货单:是指商家在确认用户订单后,下达发货指令给仓库或发货人的同时,附上的客户所购货物详细清单,包括货物ID,货物名称,货物规格,型号,数量等。仓库或发货人收到这份清单后,按单拣货,最后打包人按单核验后打包发货。

所以在整个环境中,发货单是比较重要的中间环节,必须准确清晰的打印出来,方便后续操作。可能大家会说,一个表格搞定的事情,有那么难吗?

这个还真不是一个表格就能搞定的!理由如下:
1、不同的商家和货物,需要打印的模板不一样,一个表格太low,也不方便后续环节快速查找和核验。
2、不同的平台,所采用的技术和编码不太一样,需要很好的兼容。也不是表格能搞定的。
3、有时候还需要随着发货单,再打点其他的,如一对一配套的快递单。这就需要比较高级的支持才能搞定了。

解决方案也比较简单:
1、发货单支持自定义模板;
2、发货单兼容主流平台模板编码;
3、发货单支持上下游衔接及拓展;

能看到这里,基本上整个就通了。不废话了额,看demo代码:

# coding = utf-8
import hashlib
import json
import time

import requests

key = ''  # 客户授权key
secret = ''  # 电子面单secret
siid = ''  # 打印机设备码
param = {
    "tempid": "1379****4104148992",
    "siid": siid,
    "callBackUrl": "http://www.xxx.com/fhd/callback",
    "petName": "kd100",
    "recName": "小百",
    "recPhone": "10086",
    "payTime": "2021-01-15 15:40:55",
    "expressName": "德邦快递",
    "printTime": "2021-01-15 15:41:30",
    "printCount": "1",
    "address": "广东省深圳市南山区金蝶软件园",
    "total": "21", 
    "remark": "购物小票作为购物凭证,请妥善保管,您有任何疑问,请咨询服务热线 123456798",
    "img0": {
        "type": "code_128",
        "content": "887921256577",
        "width": 350,
        "height": 100
    },
    "tab0": [
        {
            "prodName": "热敏纸",
            "count": "5",
            "specs": "76*130",
            "unitPrice": "30",
            "price": "150"
        },
        {
            "prodName": "热敏纸",
            "count": "10",
            "specs": "100*180",
            "unitPrice": "50",
            "price": "500"
        },
        {
            "prodName": "续打纸",
            "count": "5",
            "specs": "",
            "unitPrice": "40",
            "price": "200"
        },
        {
            "prodName": "云打印机",
            "count": "1",
            "specs": "二代",
            "unitPrice": "499",
            "price": "499"
        }
    ]
}

settings = {
    "pageWidth": 100,
    "pageHeight": 180,
    "margins": {
        "top": 5,
        "bottom": 5,
        "left": 5,
        "right": 5
    }
}

param_json = json.dumps(param)
timestamp = str(time.time())
md = hashlib.md5()
tmp = param_json + timestamp + key + secret
md.update(tmp.encode())
sign = md.hexdigest().upper()

req_params = {
    'method': 'billparcels',
    'key': key,
    't': timestamp,
    'sign': sign,
    'param': param_json,
    'settings': json.dumps(settings)
}
url = 'https://poll.kuaidi100.com/print/billparcels.do'  # 请求地址

print(req_params)

result = requests.post(url, req_params)  # 发送请求
print(result.text)  # 返回数据

更多细节可以参考代码发货单接口文档。有问题来聊~~~

标签:prodName,15,python,发货单,打印,param,json,key
来源: https://blog.csdn.net/austin_he2020/article/details/113876618