weixin_44532019 2021-12-05 11:30 采纳率: 68.2%
浏览 96
已结题

关于#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"

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

  • 写回答

1条回答 默认 最新

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

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 赞助了问题酬金 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)