电子发票 | 数电发票 Python SDK | 发票接口 | 开票api |开票、验真、红冲一站式集成
电子发票/数电发票 Python SDK | 开票、验真、红冲一站式集成发票 Python SDK专为电子发票、数电发票全电发票场景设计支持开票、红冲、版式文件下载等核心功能快速对接税务平台API。关键词: 电子发票SDK,数电票Python,开票接口,发票api,发票开具,发票红冲,全电发票集成 核心功能基础认证✅获取授权- 快速接入税务平台身份认证✅人脸二维码登录- 支持数电发票平台扫码登录✅认证状态查询- 实时获取纳税人身份状态发票开具数电蓝票开具- 支持增值税普通/专用电子发票版式文件下载- 自动获取销项发票PDF/OFD/XML文件发票红冲红冲前蓝票查询- 精确检索待红冲的电子发票红字信息表申请- 生成红冲凭证负数发票开具- 自动化红冲流程 快速安装pipinstalltax-invoice 查看pypi地址 查看中文文档 为什么选择此SDK精准覆盖中国数电发票标准- 严格遵循国家最新接口规范开箱即用- 无需处理XML/签名等底层细节专注业务逻辑企业级验证- 已在生产环境处理超100万张电子发票 支持的开票类型发票类型状态数电发票普通发票✅ 支持数电发票增值税专用发票✅ 支持数电发票铁路电子客票✅ 支持数电发票航空运输电子客票行程单✅ 支持数电票二手车销售统一发票✅ 支持数电纸质发票增值税专用发票✅ 支持数电纸质发票普通发票✅ 支持数电纸质发票机动车发票✅ 支持数电纸质发票二手车发票✅ 支持from tax.invoiceimportInvoiceClientimporttimeimporttraceback# 新增导入importjsonimportredisimportqrcodeimportioimportbase64 from PILimportImageimporttimefrom inputimeoutimportinputimeout, TimeoutOccurred# pip install inputimeoutfrom datetimeimportdatetime, timedelta APP_KEYAPP_SECRET# 配置信息nsrsbh# 统一社会信用代码title# 名称营业执照username# 手机号码电子税务局password# 个人用户密码电子税务局type6#6基础7标准 xhdwdzdh重庆市渝北区龙溪街道丽园路2号XXXX 1325580XXXX# 地址和电话 空格隔开xhdwyhzh工商银行XXXX 15451211XXXX#开户行和银行账号 空格隔开tokendebugTrue# 连接Redis 安装pip install redisrredis.Redis(host127.0.0.1,port6379,passwordtest123456,# 如果有密码填写密码db0,# 使用第0个数据库decode_responsesTrue# 自动将Redis返回的字节转为字符串)# 初始化客户端clientInvoiceClient(app_keyAPP_KEY,app_secretAPP_SECRET,base_urlhttps://api.fa-piao.com,debugdebug)#字符串转二维码图片base64def str_to_qr_base64(data: str)-str:# 创建二维码对象qrqrcode.QRCode(version1,error_correctionqrcode.constants.ERROR_CORRECT_L,box_size10,border4,)qr.add_data(data)qr.make(fitTrue)# 生成图像PIL Imageimgqr.make_image(fill_colorblack,back_colorwhite)# 将图像保存到内存中的字节流bufferio.BytesIO()img.save(buffer,formatPNG)# 获取 Base64 编码img_base64base64.b64encode(buffer.getvalue()).decode(utf-8)returnimg_base64#字符串转二维码图片 在命令行打印def print_qr_code(data):# 创建二维码对象qrqrcode.QRCode(version1,error_correctionqrcode.constants.ERROR_CORRECT_L,# 低容错率生成的图案更稀疏box_size1,# 字符画中通常设为1border1,# 边框宽度)qr.add_data(data)qr.make(fitTrue)# 使用终端输出模式# qrcode 库支持将二维码输出为 ANSI 字符qr.print_ascii(invertTrue)# invertTrue 会让背景变黑码变白适合深色背景终端def blue_invoice():# 开票税额计算demoinvoice_params{fpqqlsh:APP_KEY str(int(time.time()*1000)),# 建议用你的订单号fplxdm:82,kplx:0,xhdwsbh:nsrsbh,username:username,xhdwmc:title,xhdwdzdh:xhdwdzdh,xhdwyhzh:xhdwyhzh,ghdwmc:个人,# ghdwsbh: 91330100563015xxxx,zsfs:0,bz:,# 添加商品明细fyxm:[{fphxz:0,spmc:*研发和技术服务*技术服务费,je:114.68,sl:0.01,se:1.14,hsbz:1,spbm:3040105000000000000}],# 合计金额hjje:113.54,hjse:1.14,jshj:114.68}# 数电蓝票开具接口 文档returnclient.invoice.blue_invoice(**invoice_params)def get_pdf_ofd_xml(fphm): pdf_params{downflag:4,nsrsbh:nsrsbh,username:username,fphm:fphm}# 获取销项数电版式文件 文档 PDF/OFD/XMLpdf_responseclient.invoice.get_pdf_ofd_xml(**pdf_params)ifpdf_response.get(code)200: print(pdf_response.get(data))def get_token(force_updateFalse): keynsrsbh username TOKENifforce_update:# 获取授权Token文档auth_responseclient.auth.get_authorization(nsrsbh,type)# auth_response client.auth.get_authorization(nsrsbh,type,username,password)ifauth_response.get(code)200: print(f授权成功Token: {auth_response.get(data, {}).get(token)})tokenauth_response.get(data,{}).get(token)r.set(key, token,ex3600*24*30)# 过期时间30天client.auth.set_token(token)else: tokenr.get(key)iftoken: client.auth.set_token(token)else: get_token(force_updateTrue)try:# 一 获取授权token 可从缓存redis中获取Tokenget_token()# 前端模拟数电发票/电子发票开具 (蓝字发票)# 二 开具蓝票invoice_responseblue_invoice()match invoice_response.get(code):case200: print(获取pdf/ofd/xml)print(fdata: {invoice_response.get(data)})# 三 获取pdf/ofd/xmlget_pdf_ofd_xml(invoice_response.get(data,{}).get(Fphm))case420: print(登录(短信认证))# 登录数电发票平台 短信# 1 发短信验证码login_responseclient.auth.login_dppt(nsrsbhnsrsbh,usernameusername,passwordpassword)iflogin_response.get(code)200: deadline(datetime.now() timedelta(seconds300)).strftime(%Y-%m-%d %H:%M:%S)try:# 设置 timeout300 表示 300 秒smsinputimeout(promptf请在300秒内({deadline}前)输入验证码: ,timeout300)print(f\n你输入了: {sms})# 2 输入验证码login_response2client.auth.login_dppt(nsrsbhnsrsbh,usernameusername,passwordpassword,smssms)iflogin_response2.get(code)200: print(login_response2.get(data))print(\n短信验证成功)print(\n再次调用blue_invoice)invoice_responseblue_invoice()get_pdf_ofd_xml(invoice_response.get(data,{}).get(Fphm))except TimeoutOccurred: print(\n短信认证输入超时!)case430: print(人脸认证)# 1 获取人脸二维码qr_code_responseclient.face.get_face_img(nsrsbhnsrsbh,usernameusername,type1)ewmlyqr_code_response.get(data,{}).get(ewmly)ifewmlyswj:print(\n请使用电子税务局app扫码)print(\n成功做完人脸认证,请输入数字 1)# ewm自己生成二维码 安装pip install qrcode[pil]ifqr_code_response.get(data,{}).get(ewm)is not None and len(qr_code_response.get(data,{}).get(ewm))500:# ewm qr_code_response.get(data, {}).get(ewm)# qr_base64 str_to_qr_base64(ewm)# qr_code_response.get(data, {}).update({ewm: qr_base64})# print(qr_base64)# 前端使用示例: base64Uri data:image/png;base64, qr_base64print_qr_code(qr_code_response.get(data,{}).get(ewm))deadline(datetime.now() timedelta(seconds300)).strftime(%Y-%m-%d %H:%M:%S)try:# 设置 timeout300 表示 300 秒input_numinputimeout(promptf请在300秒内({deadline}前)输入: ,timeout300)print(f\n你输入了: {input_num})# 2 认证完成后 获取人脸二维码认证状态rzidqr_code_response.get(data,{}).get(rzid)face_status_responseclient.face.get_face_state(nsrsbhnsrsbh,rzidrzid,usernameusername,type1)print(code: str(face_status_response.get(code)))print(data: str(face_status_response.get(data)))ifface_status_response.get(data)is not None: slztface_status_response.get(data,{}).get(slzt)ifslzt1:print(\n人脸未认证)elifslzt2:print(\n人脸认证成功)print(\n请再次调用blue_invoice)invoice_responseblue_invoice()get_pdf_ofd_xml(invoice_response.get(data,{}).get(Fphm))elifslzt3:print(\n人脸认证二维码过期--重新获取人脸二维码)except TimeoutOccurred: print(\n人脸认证输入超时!)elifewmlygrsds:print(个人所得税app扫码)# ewm是二维码的base64case401:# 重新授权print(f{invoice_response.get(code)}授权失败:{invoice_response.get(msg)})print(重新授权 获取token 缓存到redis)get_token(True)invoice_responseblue_invoice()get_pdf_ofd_xml(invoice_response.get(data,{}).get(Fphm))case_: print(f{invoice_response.get(code)}异常: {invoice_response.get(msg)})except Exception as e:# 打印完整堆栈信息包含行号traceback.print_exc()# 新增堆栈跟踪# 添加上下文信息可选print(f\n错误发生时参数状态)print(f当前时间戳: {int(time.time())})

相关新闻

和平精英地铁逃生偷袭战术:从失败到成功的实战指南

和平精英地铁逃生偷袭战术:从失败到成功的实战指南

最近在玩《和平精英》时,很多小伙伴都遇到过这种情况:地铁逃生模式中精心策划的偷袭,却因为各种原因功亏一篑。本文将从战术选择、装备搭配、实战操作三个维度,系统分析偷袭失败的常见原因,并提供一套完整的改进方案。…

2026/8/14 11:37:44 阅读更多 →
Pikachu之文件包含

Pikachu之文件包含

File Inclusion(Local)文件包含漏洞是程序根据用户输入去加载&#xff08;包含&#xff09;一个文件&#xff0c;但没有做好限制&#xff0c;导致攻击者可以让程序加载本不应该加载的文件。假设网站有三个文件index.php news.php about.phpindex.php里面有这样的代码<?php …

2026/8/14 23:21:07 阅读更多 →
技术平权——眨眼猫打造“一顿饭的会务智能体”,让每一场会务活动都能拥有自己的智能体小程序!

技术平权——眨眼猫打造“一顿饭的会务智能体”,让每一场会务活动都能拥有自己的智能体小程序!

关键词▪️一顿饭的成本&#xff1a;平均360元▪️一顿饭的时间&#xff1a;30分钟完成小程序搭建▪️高端会务功能&#xff1a;同样拥有会务报名、现场签到、查座、资料下载、日程、手册等全面功能眨眼猫会务智能体前身是“眨眼猫智慧会务”&#xff0c;从2018年起&#xff0c…

2026/8/14 8:09:26 阅读更多 →

最新新闻

GitHub Actions代码质量守护:百人团队每月成本真能控制在1000美元吗?

GitHub Actions代码质量守护:百人团队每月成本真能控制在1000美元吗?

1. 项目概述&#xff1a;当“自动化代码质量守护”遇上“真实成本账单”最近在开发者圈子里&#xff0c;一个由GitHub官方推出的“Code Quality”功能&#xff08;通常集成在GitHub Actions中&#xff0c;简称GA&#xff09;引起了不少讨论。标题里的“每月1000美元养100个开发…

2026/8/15 3:44:39 阅读更多 →
Android Fastboot工具详解:从原理到实战的完整指南

Android Fastboot工具详解:从原理到实战的完整指南

1. Fastboot&#xff1a;Android开发者的“手术刀”如果你在搞Android设备开发、刷机或者深度定制&#xff0c;那么Fastboot绝对是你绕不开的一个核心工具。它不像ADB那样在系统运行时进行交互&#xff0c;Fastboot更像一把“手术刀”&#xff0c;在设备引导加载程序&#xff0…

2026/8/15 3:44:39 阅读更多 →
ARIMA-CNN-LSTM:高精度时序预测实战

ARIMA-CNN-LSTM:高精度时序预测实战

基于ARIMA-CNN-LSTM预测模型研究&#xff08;代码实现&#xff09; 内容概要: 本文针对基于ARIMA - CNN - LSTM的分层式组合预测模型展开研究, 其目的在于克服单一模型于处理时间序列数据时所存在的局限性, 该模型将ARIMA模型对线性趋势与周期性成分的建模能力充分融合, 卷积神…

2026/8/15 3:44:39 阅读更多 →
从任务驱动到目标驱动:构建真正智能的AI Agent设计范式

从任务驱动到目标驱动:构建真正智能的AI Agent设计范式

1. 从“任务驱动”到“目标驱动”的认知转变最近在和一些团队交流AI Agent的落地实践时&#xff0c;我发现了一个普遍存在的误区&#xff1a;很多人把Agent简单地理解为一个更高级的“自动化脚本”或“任务执行器”。他们设计Agent的思路往往是&#xff1a;“我需要它帮我完成A…

2026/8/15 3:44:39 阅读更多 →
免费开源字体 Montserrat 的 3 步上手实战

免费开源字体 Montserrat 的 3 步上手实战

免费开源字体 Montserrat 的 3 步上手实战 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat 凌晨一点&#xff0c;设计师小林对着空白画布发愁&#xff1a;甲方要的"高级感标题"试遍五款字体&#xff0c;要么商用收费&am…

2026/8/15 3:44:39 阅读更多 →
OpenClaw:工业级AI智能体网关的设计、部署与核心实践

OpenClaw:工业级AI智能体网关的设计、部署与核心实践

1. 项目概述&#xff1a;OpenClaw 的诞生与核心定位最近在 AI 智能体这个圈子里&#xff0c;OpenClaw 这个名字被讨论得越来越频繁。很多朋友第一次听到这个名字&#xff0c;可能会联想到某个开源爬虫框架或者工具&#xff0c;但实际上&#xff0c;它瞄准的是一个更底层、更关键…

2026/8/15 3:43:39 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址&#xff1a;本地PC端运行&#xff08;或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口&#xff1a;3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时&#xff0c;传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品&#xff08;FMCG&#xff09;是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中&#xff0c;往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统&#xff08;WMS&#xff09;与制造业、电商行业存在明显区别&#xff1a;它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑&#xff1a;baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码&#xff08;维护中 rm repo&#xff09; 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片&#xff1a;Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身&#xff0c;而应重视模型外的系统搭建&#xff0c;即Harness。提出AgentModelHarness的实用公式&#xff0c;详细介绍Harness的四个层次&#xff1a;持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →