C#通过接口获取税控盘基本信息「建议收藏」

C#通过接口获取税控盘基本信息「建议收藏」C#读盘需要引用C++DLL通过传入XML报文,传出XML报文注意事项程序必须使用32位除了查询基本信息无需注册码外,其它操作均需要注册码。注册码来源不明开票有开票接口组件,本文仅读取盘内的基本信息接口定义skpc.dll文件依赖NISEC_SKP.dll、ZLib_Tools.dll//税控盘接口////载入DLL[DllImport(“skpc.dll”,…

大家好,又见面了,我是你们的朋友全栈君。

C#读盘需要引用C++ DLL
通过传入XML报文,传出XML报文

  • 注意事项
  1. 程序必须使用32位
  2. 除了查询基本信息无需注册码外,其它操作均需要注册码。注册码来源不明
  3. 开票有开票接口组件,本文仅读取盘内的基本信息

接口定义

skpc.dll文件依赖 NISEC_SKP.dll、ZLib_Tools.dll

//税控盘接口//
//载入DLL
[DllImport("skpc.dll", EntryPoint = "OperateDisk", CharSet = CharSet.Ansi)];
//声明方法
public static extern IntPtr OperateDisk(String InXml, byte[] OutXml);

传入的Xml报文

//skpkl节点为盘口令,默认口令是88888888
<?xml version="1.0" encoding="gbk"?>
<business comment="税控盘信息查询" id="SKPXXCX">
  <body yylxdm="1">
    <input>
      <skpkl>88888888</skpkl>
    </input>
  </body>
</business>

应用实例

        /// <summary>
        /// 读取税控盘
        /// </summary>
        /// <param name="sInputxml">传入的XML报文</param>
        /// <returns>返回XML</returns>
        public static string Skpinfo(string sInputxml)
        { 
   
            byte[] buffer = new byte[1048576]; 
            OperateDisk(sInputxml, buffer); 
            return Encoding.Default.GetString(buffer, 0, Array.IndexOf(buffer, (byte)0));
        }

返回Xml报文

<?xml version="1.0" encoding="gbk"?>
<business comment="税控盘信息查询" id="SKPXXCX">
  <body yylxdm="1">
    <output>
        <skpbh>税控盘编号</skpbh>
        <nsrsbh>纳税人识别号</nsrsbh>
        <nsrmc>纳税人名称</nsrmc>
        <swjgdm>税务机关代码</swjgdm>
        <swjgmc>税务机关名称</swjgmc>
        <fplxdm>发票类型代码</fplxdm>
        <dqsz>当前时钟</dqsz>
        <qysj>启用时间</qysj>
        <bbh>版本号</bbh>
        <kpjh>开票机号</kpjh>
        <qylx>企业类型</qylx>
        <blxx>保留信息</blxx>
        <qtkzxx>其它扩展信息</qtkzxx>
        <returncode>读盘状态代码</returncode>
        <returnmsg>读盘状态信息</returnmsg>
     </output>
  </body>
</business>
  • 参数说明
节点 名称 长度 说明
yylxdm 应用类型代码 1 1:国税 、2:地税
skpkl 税控盘口令 8
skpbh 税控盘编号 12
nsrsbh 纳税人识别号 20
nsrmc 纳税人名称 80
swjgdm 税务机关代码 11 9位或者11位
swjgmc 税务机关名称 80
fplxdm 发票类型代码 30 存在的所有发票类型代码(三位一组,无分割)
dqsz 当前时钟 14 YYYYMMDDHHMMSS
qysj 启用时间 14 YYYYMMDDHHMMSS
bbh 版本号 10
kpjh 开票机号 5 最大65535
qylx 企业类型 3 “00”不特殊企业“01”特殊企业
blxx 保留信息 16 农产品销售收购类型+铁路企业类型+纳税人性质
qtkzxx 其它扩展信息
returncode 返回代码 8 00000000成功,其它失败
returnmsg 返回信息 256 读盘状态信息

税控盘信息查询工具

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137383.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3306

    3306

    2021年9月11日
    93
  • docker容器和主机同网段_docker桥接模式下外网访问

    docker容器和主机同网段_docker桥接模式下外网访问首先我们需要了解的是:每个docker容器都是隔离的,所以它们之间是相互不同的!那么我们开始操作起来,让他们之间可以相互ping通网络。。。一、拉取镜像创建容器1.在这之前首先关闭防火墙;如果显示runinng则执行:sudosystemctlstopfirewalld2.在https://hub.docker.com里拉取镜像busybox(注:busybox相当于小型的c…

    2025年10月25日
    5
  • gbdt算法理解_gbdt算法原理

    gbdt算法理解_gbdt算法原理      谈及gbdt算法,不得不提GB与dt算法,即使用梯度提升回归树的方式进行回归提升。     以下贴上经典算法图:    1、第一步,算法中的参数,建立M棵回归树,每颗树的深度都为J,其中有一棵树为第一次建立的回归树,其余M-1棵树为残差(在梯度提升回归树里面为使损失函数最小的梯度向量)建立的树,F(X)为估值向量,即每一例为x样本在K类上的估值。   …

    2022年10月10日
    3
  • vscode写前端代码要装什么插件_AE必备插件

    vscode写前端代码要装什么插件_AE必备插件本篇文章先介绍下常见的插件,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。vscode之所以被称为宇宙第一神器(虽然我喜欢用HBuilderX),其中丰富的插件功不可没,安装起来超级简单,给我们开发带来了极大的便捷。注意,新手学习期间,不建议安装t太多的插件,用到啥就安装啥。因为有些插件会到vue学习的时候引起冲突,所以这里就介绍几个常用的插件。vscode刚下载完毕是语言英文的,要先安装这个插件,把语言改为中文版,所以是我们第一个安装的插件就是他想必各位大佬也都用。修改开始标签,结束标签

    2022年9月30日
    3
  • Python面试基础知识_python自学需要哪些基础知识

    Python面试基础知识_python自学需要哪些基础知识python基础知识1.python的常用的数据结构有哪些?2.python的常用的数据类型?3.python生成随机数random(0,10)可以生成包含0~10的随机数吗?4.python反转列表,reverse5.python中有没有用过装饰器、用装饰器的场景,理解装饰器中的逻辑吗?插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML

    2022年8月31日
    2
  • ExecuteScalar()方法

    ExecuteScalar()方法ExecuteScalar()方法也用来执行SQL语句,但是ExecuteScalar()执行SQL语句后的返回值与ExecuteNonQuery()并不相同,ExecuteScalar()方法的返回值的数据类型是Object类型。如果执行的SQL语句是一个查询语句(SELECT),则返回结果是查询后的第一行的第一列,如果执行的SQL语句不是一个查询语句,则会返回一个未实例化的对象,必须通过类型转

    2022年6月29日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号