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()