当前位置: 首页 > ai >正文

python调用国税乐企直连接口开数电票之API调用工具类

背景

ERP直连国税平台开数电票,涉及到预赋码下载,额度查询,风险信息查询等等步骤, 实现一个接口调用的工具类,统一管理加密,调用,异常返回工具类,方便其他脚本使用.

直接上代码

# 文件: lq_request_util.py
# encoding: utf-8
# @author: Evan#chengwenit.com
# 乐企接口调用工具类import requests
import json
from cjc_sm4_encrypt import SM4ECBUtilsclass LQRequestUtil:def __init__(self, base_url, headers, key):"""初始化请求工具类:param base_url: 基础URL地址:param headers: 请求头信息:param key: SM4加密使用的十六进制密钥"""self.base_url = base_urlself.headers = headers.copy()self.key = keydef encrypt(self, data_dict):"""将字典转换为JSON字符串并进行SM4加密:param data_dict: 明文字典:return: 加密后的Base64字符串"""plain_text = json.dumps(data_dict, ensure_ascii=False)return SM4ECBUtils.encrypt_ecb(self.key, plain_text)def decrypt(self, cipher_base64):"""解密返回的加密数据:param cipher_base64: Base64格式的加密字符串:return: 解密后的字典对象"""decrypted_json = SM4ECBUtils.decrypt_ecb(self.key, cipher_base64)return json.loads(decrypted_json)def post(self, endpoint, data_dict, verify_ssl=False):"""发送POST请求并处理加解密逻辑:param endpoint: 接口路径(拼接在base_url之后):param data_dict: 要发送的明文数据字典:param verify_ssl: 是否验证SSL证书:return: 解密后的响应数据字典"""full_url = self.base_url + endpointencrypted_data = self.encrypt(data_dict)response = requests.post(full_url,headers=self.headers,data=encrypted_data,verify=verify_ssl)if response.status_code != 200:return(f"HTTP请求失败,状态码:{response.status_code}")# 如果有data则解密,没有data直接返回response_json = json.loads(response.json()["body"])["Response"]encrypted_result = response_json.get("Data")if encrypted_result is not None:decrypted_result = self.decrypt(encrypted_result)response_json["Data"] = decrypted_resultreturn response_json
http://www.xdnf.cn/news/4789.html

相关文章:

  • AI领域的MCP(Model-Centric Paradigm)
  • 无线远传压力传感装置:城市管网的 “压力小卫士”
  • 【盟通杂谈】为什么现代工业需要工业协议?
  • CDGP|数据全生命周期的“收数、治数、用数、保数”体系详解
  • 操作系统 : 线程概念与控制
  • Nacos源码—Nacos集群高可用分析(三)
  • 无需标记点,精准面部捕捉!无线面捕头盔赋予自由表演空间
  • 力扣94. 二叉树的中序遍历
  • 简单网络交换、路由
  • Java 异常处理
  • 【DBMS学习系列】一、DBMS(数据库管理系统)的存储模型
  • 学成在线之课程管理
  • 100个常用的DeepSeek指令
  • Vue事件总线(EventBus)使用指南:详细解析与实战应用 父子组件传值
  • Chain of Thought (思维链) 技术详解
  • 按摩椅上的气囊系统 是现代按摩椅中非常关键的组成部分,它与机芯系统相辅相成,为用户提供全方位、更接近真人按摩的体验
  • WSL(Windows Subsystem for Linux)入门
  • 绿色计算:可持续发展的计算技术
  • 记录一次华为魔改 fusionlnsight和ai问答的狗血故事
  • 【吃透 Elasticsearch 的核心原理】学习步骤
  • 系统网络运维基础:Linux与Windows实践指南(带电子书资料)
  • 网络磁盘挂载 iSCSI、SMB、WebDAV和FTP协议比较
  • k8s术语之job
  • 适用于室外远距离通信的Lora
  • 【嵌入式开发-RS-485】
  • 聊聊Spring AI Alibaba的SentenceSplitter
  • 图--拓扑排序
  • C++ - 类和对象 #日期类的实现
  • h5页面路由白名单限制
  • 数字化转型:概念性名词浅谈(第二十五讲)