pyhton对接快递鸟 快递鸟已经返回我html打印模板 我想要链接打印机把他打印出来
目前返回的Html 的数据 更改后缀名后 可以直接显示我要打印出来的东西
下面是目前的代码 求帮个忙写一个 链接打印机并且打印的数据 最好是创建一个专门打印的类
import requests
import hashlib
import base64
import json
###导包
创建类 打单子
class Kd_Da_Dan():
##定义所需要的系统参数
def init(self):#初始化
self.url = 'http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json'#打印面单调试地址
self.EBusinessID = 'test1621702' #用户ID快递鸟页面的
self.ApiKey = 'e934cad8-8b84-4007-8129-2b1358bf39bf'#快递鸟页面api秘钥
self.RequestType = "1007"
- self.ShipperCode = 'STO' #快递公司编码
- self.OrderCode = 'YPXS20120411'#订单编号 去数据库中数据
- self.ExpNo = ''#快递单号
- self.CustomerName = '123456'#电子面单客户号 管快递公司要 或直接快递鸟申请
- self.CustomerPwd = '123456'#快递公司密码
- self.xiangyingtou()#调用相应头
- def xiangyingtou(self):
- data = self.getParams()#调用加密处理 返回相应体
- res = requests.post(self.url, data)#发送pst请求 返回res
- # print(res.json())
- myres = json.loads(res.text)
- print(myres["PrintTemplate"])
-
-
-
-
-
-
-
- def getParams(self):
- # # 组装应用级参数
- # RequestData = {
- # 'ShipperCode': self.ShipperCode,
- # 'OrderCode': self.OrderCode,
- # 'ExpNo': self.ExpNo,
- # 'CustomerName': self.CustomerName,
- # 'CustomerPwd': self.CustomerPwd
- # }
-
- ## 提交信息
- RequestData = {
- "OrderCode": self.OrderCode,#销售单号取药师帮单号 或 erp销售单号
- "ShipperCode": self.ShipperCode,#快递公司编码
- "CustomerName": self.CustomerName,#'#电子面单客户号 管快递公司要 或直接快递鸟申请
- "CustomerPwd": self.CustomerPwd,#快递公司密码
- "MonthCode": "",#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
- "SendSite": self.CustomerName,#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
- "PayType": 3,#邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付(仅SF支持)
- "MonthCode": "",#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
- "ExpType": 1, #快递类型:1-标准快件 ,详细快递类型参考《快递公司快递业务类型.xlsx》
- "Cost": '',#快递运费
- "OtherCost":'',
- "Sender": {
- "Company": "东晨药业有限公司",#发件人公司
- "Name": "Taylor",#发件人
- "Mobile": "15018442396", #发件人电话
- "ProvinceName": "上海",#发家人省
- "CityName": "上海市",#发市
- "ExpAreaName": "青浦区",#发件区
- "Address": "明珠路"#发件详细地址
- },#发件人信息
- "Receiver": {
- "Company": "",#收件人公司
- "Name":'肖宏伟', #收件人
- "Mobile": "15018442396", #收件人电话
- "ProvinceName": "北京省",#收件省
- "CityName": "北京市",#收件市
- "ExpAreaName": "朝阳区",#收件区
- "Address": "三里屯街道"#收件人详细地址
- },#收件人信息
- "Commodity": [
- {
- "GoodsName": "药品",#商品名称
- "Goodsquantity": 1,#商品数量
- "GoodsWeight": 1.0#商品重量
- }
- ],#商品详情
- "Weight": '',#重量
- "Quantity": 1,#包裹数(最多支持30件) 一个包裹对应一个运单号,如果是大于1个包裹,返回则按照子母件的方式返回母运单号和子运单号
- "Volume": '',#包裹总体积m3 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值
- "IsReturnPrintTemplate": 1,#返回电子面单模版
- # "TemplateSize": 打印模版
- "Remark": "小心轻放"#备注
- }
- # 组装系统级参数
- data = {
- "RequestData": json.dumps(RequestData),#请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。
- "RequestType": self.RequestType, #商户ID,请在我的服务页面查看。
- "EBusinessID": self.EBusinessID,##用户ID快递鸟页面的
- "DataSign": self.getSign(RequestData), #数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。
- "DataType": 2#请求、返回数据类型:只支持JSON格式
- }
- return data
-
- def md5(self,n):
- md5 = hashlib.md5()
- md5.update(str(n).encode("utf-8"))
- return md5.hexdigest()
- # md5加密
- def getSign(self,n):
- md5Data = self.md5(json.dumps(n)+ self.ApiKey)
- res = str(base64.b64encode(md5Data.encode("utf-8")), "utf-8")
- return res
a= Kd_Da_Dan()