weixin_44532019 2021-12-05 03:30 采纳率: 69.2%
浏览 97
已结题

关于#python#的问题:pyhton对接快递鸟 快递鸟已经返回我html打印模板 我想要链接打印机把他打印出来目前返回的Html 的数据 更改后缀名后 可以直接显示我要打印出来的东西

pyhton对接快递鸟 快递鸟已经返回我html打印模板 我想要链接打印机把他打印出来
目前返回的Html 的数据 更改后缀名后 可以直接显示我要打印出来的东西

img

img

下面是目前的代码 求帮个忙写一个 链接打印机并且打印的数据 最好是创建一个专门打印的类

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"

  1. self.ShipperCode = 'STO' #快递公司编码
  2. self.OrderCode = 'YPXS20120411'#订单编号 去数据库中数据
  3. self.ExpNo = ''#快递单号
  4. self.CustomerName = '123456'#电子面单客户号 管快递公司要 或直接快递鸟申请
  5. self.CustomerPwd = '123456'#快递公司密码
  6. self.xiangyingtou()#调用相应头
  7. def xiangyingtou(self):
  8. data = self.getParams()#调用加密处理 返回相应体
  9. res = requests.post(self.url, data)#发送pst请求 返回res
  10. # print(res.json())
  11. myres = json.loads(res.text)
  12. print(myres["PrintTemplate"])
  13. def getParams(self):
  14. # # 组装应用级参数
  15. # RequestData = {
  16. # 'ShipperCode': self.ShipperCode,
  17. # 'OrderCode': self.OrderCode,
  18. # 'ExpNo': self.ExpNo,
  19. # 'CustomerName': self.CustomerName,
  20. # 'CustomerPwd': self.CustomerPwd
  21. # }
  22. ## 提交信息
  23. RequestData = {
  24. "OrderCode": self.OrderCode,#销售单号取药师帮单号 或 erp销售单号
  25. "ShipperCode": self.ShipperCode,#快递公司编码
  26. "CustomerName": self.CustomerName,#'#电子面单客户号 管快递公司要 或直接快递鸟申请
  27. "CustomerPwd": self.CustomerPwd,#快递公司密码
  28. "MonthCode": "",#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
  29. "SendSite": self.CustomerName,#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
  30. "PayType": 3,#邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付(仅SF支持)
  31. "MonthCode": "",#电子面单客户号,需要下载《快递鸟电子面单客户号参数对照表.xlsx》,参考对应字段传值
  32. "ExpType": 1, #快递类型:1-标准快件 ,详细快递类型参考《快递公司快递业务类型.xlsx》
  33. "Cost": '',#快递运费
  34. "OtherCost":'',
  35. "Sender": {
  36. "Company": "东晨药业有限公司",#发件人公司
  37. "Name": "Taylor",#发件人
  38. "Mobile": "15018442396", #发件人电话
  39. "ProvinceName": "上海",#发家人省
  40. "CityName": "上海市",#发市
  41. "ExpAreaName": "青浦区",#发件区
  42. "Address": "明珠路"#发件详细地址
  43. },#发件人信息
  44. "Receiver": {
  45. "Company": "",#收件人公司
  46. "Name":'肖宏伟', #收件人
  47. "Mobile": "15018442396", #收件人电话
  48. "ProvinceName": "北京省",#收件省
  49. "CityName": "北京市",#收件市
  50. "ExpAreaName": "朝阳区",#收件区
  51. "Address": "三里屯街道"#收件人详细地址
  52. },#收件人信息
  53. "Commodity": [
  54. {
  55. "GoodsName": "药品",#商品名称
  56. "Goodsquantity": 1,#商品数量
  57. "GoodsWeight": 1.0#商品重量
  58. }
  59. ],#商品详情
  60. "Weight": '',#重量
  61. "Quantity": 1,#包裹数(最多支持30件) 一个包裹对应一个运单号,如果是大于1个包裹,返回则按照子母件的方式返回母运单号和子运单号
  62. "Volume": '',#包裹总体积m3 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值
  63. "IsReturnPrintTemplate": 1,#返回电子面单模版
  64. # "TemplateSize": 打印模版
  65. "Remark": "小心轻放"#备注
  66. }
  67. # 组装系统级参数
  68. data = {
  69. "RequestData": json.dumps(RequestData),#请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。
  70. "RequestType": self.RequestType, #商户ID,请在我的服务页面查看。
  71. "EBusinessID": self.EBusinessID,##用户ID快递鸟页面的
  72. "DataSign": self.getSign(RequestData), #数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。
  73. "DataType": 2#请求、返回数据类型:只支持JSON格式
  74. }
  75. return data
  76. def md5(self,n):
  77. md5 = hashlib.md5()
  78. md5.update(str(n).encode("utf-8"))
  79. return md5.hexdigest()
  80. # md5加密
  81. def getSign(self,n):
  82. md5Data = self.md5(json.dumps(n)+ self.ApiKey)
  83. res = str(base64.b64encode(md5Data.encode("utf-8")), "utf-8")
  84. return res

a= Kd_Da_Dan()

展开全部

  • 写回答

1条回答 默认 最新

  • 「已注销」 2021-12-05 06:47
    关注
    1. 思路大概是这样的
    2. # 保存为html文件
    3. # html转pdf 相关库及程序:pdfkit wkhtmltopdf
    4. # 打印pdf 相关库及程序:pywin32 gsprint
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    weixin_44532019 2021-12-05 07:39

    能帮忙写一个类么?
    或者代码?

    回复
    「已注销」 回复 weixin_44532019 2021-12-05 12:48

    1. 程序及代码:
    2. https://www.aliyundrive.com/s/h6QXKkyxdTc

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月5日
  • 赞助了问题酬金 12月5日
  • 创建了问题 12月5日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部