主页
软件技术
返回
开票业务整合方案及报价单

一、 项目概述

1.1背景

本方案适用于ERP集成防伪开票需求的企业。

1.2概况

业务系统、防伪开票系统属两个独立的系统。开票系统以IE浏览器ActiveX控件(仅支持32位系统)的方式提供开票系统的接口,业务系统可以通过调用该接口实现增值税发票的开具、打印、作废等操作。

1.3使用人员

主要使用人员为公司开票人员。

二、 接口说明

2.1控件调用

2.1.1控件调用实例

调用实例(参考Demo)

//实例化ActiveX开票对象

<OBJECT id="MyControl" name="MyControl" classid= "clsid:{94882155-3B7C-48E3-B357-234D56D8F15A}" width = 288 height = 72/ >

 

1.打开金税卡

MyControl.OpenTax();//打开金税卡

String TaxMessage =MyControl.TaxMessage //函数返回值

String TaxStatus =MyControl.TaxStatus //函数返回值

String TaxMachineNo= MyControl.TaxMachineNo //开票机号

2.开票、作废、打印、红冲

MyControl.TaxInXml=发票数据 //输入开票信息

MyControl.TaxJson (); //开票、作废、打印、红冲,Json格式

String TaxMessage =MyControl.TaxMessage //函数返回值

String TaxStatus =MyControl.TaxStatus //函数返回值

3.回传已开具发票信息

MyControl.ERPNumber=”201305080001” //ERP销售单据编号

MyControl. SelectTaxJson (); //回传发票信息,Json格式

String TaxMessage =MyControl.TaxMessage //函数返回值,回传的发票信息

String TaxStatus =MyControl.TaxStatus //函数返回值

4.关闭金税卡

MyControl.CloseTax();

String TaxMessage =MyControl.TaxMessage //函数返回值

String TaxStatus =MyControl.TaxStatus //函数返回值

4.异常处理

调用CloseTax()强制释放金税卡资源。

 

注意事项:

1.业务系统可设定一个全局变量,记录金税卡是否开启的状态信息。

2.业务系统可设定一个全局变量,实例化开票对象。

3.每次开启业务系统【税控发票管理模块】,调用OpenTax()开启金税卡,然后调用Tax()进行开票作废打印红冲等操作,所有操作结束调用CloseTax()关闭金税卡。

2.1.2控件说明:

1.OpenTax(功能:开启金税卡)

参数说明:

参数名称

数据类型

类型

参数含义

TaxStatus

string

返回值

命令执行结果(S-成功,F-失败)。

TaxMessage

string

返回值

返回命令(成功为金税开启成功,失败为金税开启失败)。

TaxMachineNo

string

返回值

开票机号。

2. TaxJson(功能:开票、作废、打印)

参数说明:

参数名称

数据类型

类型

参数含义

TaxInXml

string

传值

发票数据,Json格式。输入参数格式定义详见2.2.1~2.2.3节

TaxStatus

string

返回值

命令执行结果(S-成功,F-失败)。

TaxMessage

string

返回值

返回命令(成功为返回已开具的发票信息,失败为错误信息)。返回值参数Json格式定义详见2.2.4节。

3.CloseTax(功能:关闭金税卡)

参数说明:

参数名称

数据类型

类型

参数含义

TaxStatus

string

返回值

命令执行结果(S-成功,F-失败)。

TaxMessage

string

返回值

返回命令(成功为金税关闭成功,失败为金税关闭失败)。

4. SelectTaxJson(功能:回传已开具的发票信息)

参数说明:

参数名称

数据类型

类型

参数含义

ERPNumber

string

传值

ERP销售单据编号

TaxStatus

string

返回值

命令执行结果(S-成功,F-失败)。

TaxMessage

string

返回值

返回命令(成功为返回已开具的发票信息,失败为错误信息)。返回值参数Json格式定义详见2.2.4节。

TaxMessage返回错误信息说明:

Message

金税盘正在使用中

金税盘在其他程序中打开了

没有发票了

已到抄税期

发票类型不对

红蓝字验证不对

购方企业名称不对

购方税号不对

购方开户行不对

购方银行账号不对

购方地址不对

购方电话不对

销方开户行不对

销方银行账号不对

销方地址不对

销方电话不对

税率不对

备注不对

开票人不对

复核人不对

收款人不对

物品是否为附件不对

销售订单号码不对

无清单明细

物品名称不对

规格型号不对

规格型号不对

计量单位不对

是否含税不对

金额不对

折扣不对

传入发票数据不合法

开票前金税卡状态错

金税卡开票调用错误

开票后取金税卡状态错

开票失败

所开发票已作废

未找到发票或清单

打印成功

未打印

打印失败

当月发票库未找到该发票

该发票已经作废

作废成功

未作废

金税盘未打开

输入的信息不正确

此销售单据已开

无可用发票

2.2控件参数格式与定义

2.2.1生成发票

1.实例:

Json格式

{"siiscmd":{"issueinv":{"invrecord":{"invrecordhead":{"machinetaxnr":"320501000000001","machinenr":"0","invkind":{"value":"0"},"doctype":{"value":"1"},"docnr":"00128614","docdate":"2013-11-29 16:22:31","custnr":"YNPT(SZ)WLYXGS","custname":"优尼派特(苏州)物流有限公司","custtaxnr":"321700677602732","custaddrtel":"苏州工业园区现代大道88号普罗斯物流园C25仓库南二单元;0512-67332100","custbankacct":"中国银行苏州工业园区支行;502758194313","memo":"HCYNPA10月份","memo2":"","refinvcode":"","refinvnr":"","rednoticenr":"","issuer":"徐全易","checker":"沈洁","payee":"邢彩红","sellerbankacct":"中行苏州浒关支行;497558193319","selleraddrtel":"苏州西环路6号国际经贸大厦五楼 0512-66325299"},"invrecorditem":[{"prodnr":"","prodname":"包干费","spec":"","unit":"个","quantity":"1.0","price":"0.0","amount":"23764.29","taxrate":"0.06"},{"prodnr":"","prodname":"包装费","spec":"","unit":"张","quantity":"1.0","price":"0.0","amount":"2000","taxrate":"0.06"}]}}}}

2.参数格式:Json,参数类型:string

参数内容:

参数名称

类型

长度

说明

必填

machinetaxnr

字符


销方税务登记号

machinenr

字符


税控机编号

invkind

数值


0-专用发票,2-普通发票

doctype

数值


1-正常单据,2-红冲单据,3-折扣单据(折扣处理是对于单据的所有物品的折扣)

docnr

字符

50

ERP系统发票号

docdate

日期


ERP系统发票日期(YYYY-MM-DD HH:MI:SS)

custnr

字符

100

客户编号

custname

字符

100

客户名称

custtaxnr

字符

20

客户税号

custaddrtel

字符

100

客户地址电话

custbankacct

字符

100

客户银行及帐号

memo

字符

250

备注(红冲专用发票第一行必须有这几个字:“开具红字增值税专用发票通知单号”)(红冲普通发票第一行必须有这几个字:“对应正数发票代码:3200051620号码:00030501”)(红冲普通发票第一行字“号码:00030501”前面有空格)

红冲必填

memo2

字符

4000

备注2

refinvcode

字符

10

对应正数发票代码(仅用于普通发票)

refinvnr

数值


对应正数发票号码(仅用于普通发票)

rednoticenr

字符

20

红票通知单号(仅用于专用发票)

issuer

字符

10

开票人

checker

字符

10

复核人

payee

字符

10

收款人

selleraddrtel

字符

100

销方地址电话

sellerbankacct

字符

100

销方银行及帐号

prodnr

字符

50

产品编号

prodname

字符

100

产品名称

spec

字符

50

规格型号

unit

字符

50

计量单位

quantity

数值


数量

price

数值


单价(含税)

amount

数值


金额(含税)

taxrate

数值


税率

开票必输项销方地址电话、发票含税标志(含税)、是否使用销货清单标志(销货清单可以进行设置默认不是销货清单如果超过8行会默认销货清单)、发票只能开同一税率的物品不能开不同税率的。

2.2.2打印发票

1.实例:

Json格式:

{"siiscmd":{"printinv":{"key":{"invkind":{"value":"0"},"invcode":"3200051560","invnr":"00000171"}}}}

2.参数格式:Json,参数类型:string

参数内容:

参数名称

类型

长度

说明

invkind

数值

1

0-专用发票,2–普通发票

invcode

字符

10

发票代码

invnr

数值


发票号码

2.2.3作废发票

1.实例:

Json格式

{"siiscmd":{"cancelinv":{"key":{"invkind":{"value":"0"},"invcode":"3200051560","invnr":"00073727"}}}}

2.参数格式:Json,参数类型:string

参数内容:

参数名称

类型

长度

说明

invkind

数值

1

0-专用发票,2 –普通发票

invcode

字符

10

发票代码

invnr

数值


发票号码

2.2.4返回发票

1.实例:

Json格式

{"?xml":{"@version":"1.0"},"siiscmd":{"@xmlns":"http://www.aisino.sh.cn","sendbackinv":{"sendbackinvrecord":{"sendbackinvrecordhead":{"binvkind":{"value":"0"},"binvcode":"3200051560","binvnr":"00000173","binvdate":"201407310644","bmachinenr":"0","bcancelled":"0","invkind":{"value":"0"},"doctype":{"value":"1"},"docnr":"00128634","docdate":"201311291622","custnr":"YNPT(SZ)WLYXGS","custname":"优尼派特(苏州)物流有限公司","custtaxnr":"321700677602732","custaddrtel":"苏州工业园区现代大道88号普罗斯物流园C25仓库南二单元;0512-67332100","refinvnr":null,"custbankacct":"中国银行苏州工业园区支行;502758194313","memo":"HCYNPA10月份","memo2":null,"refinvcode":null,"rednoticenr":null,"issuer":"徐全易","checker":"沈洁","payee":"邢彩红","sellerbankacct":"中行苏州浒关支行;497558193319","selleraddrtel":"苏州西环路6号国际经贸大厦五楼 0512-66325299","totalamount":"23764.29","totaltax":"1345.15"},"sendbackinvrecorditem":{"prodnr":null,"prodname":"包干费","spec":null,"unit":"个","quantity":"1","price":"0","amount":"23764.29","taxrate":"0.06","tax":"1345.15"}}}}}

2.参数格式:Json,参数类型:string

参数内容:日期格式返回都为YYYYMMDDHHMI

参数名称

类型

长度

说明

binvkind

数值

1

0-专用发票,2 –普通发票

binvcode

字符

10

发票代码

binvnr

数值


发票号码

binvdate

日期


开票日期(YYYYMMDDHHMI)

bmachinenr

字符

3

开票机号

bcancelled

数值


0-正常发票,1-作废发票

invkind

数值


0-专用发票,2-普通发票

doctype

数值


1-正常单据,2-红冲单据,3-折扣单据

docnr

字符

50

ERP系统发票号

docdate

日期


ERP系统发票日期(YYYYMMDDHHMI)

custnr

字符

100

客户编号

custname

字符

100

客户名称

custtaxnr

字符

20

客户税号

custaddrtel

字符

100

客户地址电话

custbankacct

字符

100

客户银行及帐号

memo

字符

250

备注

memo2

字符

4000

备注2

refinvcode

字符

10

对应正数发票代码(仅用于普通发票)

refinvnr

数值


对应正数发票号码(仅用于普通发票)

rednoticenr

字符

20

红票通知单号(仅用于专用发票)

issuer

字符

10

开票人

checker

字符

10

复核人

payee

字符

10

收款人

selleraddrtel

字符

100

销方地址电话

sellerbankacct

字符

100

销方银行及帐号

totalamount

数值


发票价税合计

totaltax

数值


发票税额合计

prodnr

字符

50

产品编号

prodname

字符

100

产品名称

spec

字符

50

规格型号

unit

字符

50

计量单位

quantity

数值


数量

price

数值


单价(含税)

amount

数值


金额(含税)

taxrate

数值


税率

tax

数值


税额

2.2.5回传发票信息

1.实例:

Json格式

[{"A.发票种类":"s","A.类别代码":"3200051560","A.发票号码":174,"开票机号":0,"A.销售单据编号":"05128634","购方名称":"損swG|╫#观顖尿閜0f盞‐l柱u0005su001d?? u0004","购方税号":"絬?鱠5鶟6#結w ? u0002","购方地址电话":"苏州工业园区现代大道88号普罗斯物流园C25仓库南二单元;0512-67332100","购方银行帐号":"苖H枆婕翢Oj?貇–?u0015鉃?k fP?樗囲u0004@u001e? u0005","销方名称":"ht1","销方税号":"320501000000001","销方地址电话":"苏州西环路6号国际经贸大厦五楼 0512-66325299","销方银行帐号":"中行苏州浒关支行;497558193319","销售部门":null,"异地销售":true,"加密版本号":"11","密文":"?﹢?u003c亂Yy杫辚Hg?浟??p稄鱼u0013Fs-嫇摤欩?u001cu0004D筁u0015Pn?5嵨?峸?$鴓k僺u001e?u00276$壨Hc?溴跖@u0012發?u0011黟鳌?購H:F絻?νp? u000e","开票日期":"/Date(1406736000000)/","所属月份":7,"合计金额":22419.14,"A.税率":0.06,"合计税额":1345.15,"主要商品名称":"包干费","A.商品税目":null,"记帐凭证号码":null,"备注":"HCYNPA10月份","开票人":"徐全易","复核人":"沈洁","收款人":"邢彩红","打印标志":false,"清单标志":false,"购方编号":null,"部门编号":null,"A.商品编号":null,"作废标志":false,"报税标志":false,"登记标志":false,"外开标志":false,"修复标志":false,"校验码":"71583175473844050592","报税期":1,"选择标志":0,"凭证类别":null,"凭证号码":0,"凭证业务号":null,"凭证状态":0,"凭证日期":null,"索引号":1,"设备标志":1,"营业税标志":"0000000000","B.发票种类":"s","B.类别代码":"3200051560","B.发票号码":174,"发票明细序号":1,"B.销售单据编号":null,"发票行性质":0,"金额":22419.14,"B.税率":0.06,"税额":1345.15,"商品名称":"包干费","B.商品税目":null,"规格型号":null,"计量单位":"个","数量":1,"单价":23764.29,"含税价标志":true,"B.商品编号":null,"单据明细序号":1}]

2.参数格式:Json,参数类型:string

参数内容:日期格式返回都为YYYYMMDDHHMI

参数名称

类型

长度

说明

binvkind

数值

1

0-专用发票,2 –普通发票

binvcode

字符

10

发票代码

binvnr

数值


发票号码

binvdate

日期


开票日期(YYYYMMDDHHMI)

bmachinenr

字符

3

开票机号

bcancelled

数值


0-正常发票,1-作废发票

invkind

数值


0-专用发票,2-普通发票

doctype

数值


1-正常单据,2-红冲单据,3-折扣单据

docnr

字符

50

ERP系统发票号

docdate

日期


ERP系统发票日期(YYYYMMDDHHMI)

custnr

字符

100

客户编号

custname

字符

100

客户名称

custtaxnr

字符

20

客户税号

custaddrtel

字符

100

客户地址电话

custbankacct

字符

100

客户银行及帐号

memo

字符

250

备注

memo2

字符

4000

备注2

refinvcode

字符

10

对应正数发票代码(仅用于普通发票)

refinvnr

数值


对应正数发票号码(仅用于普通发票)

rednoticenr

字符

20

红票通知单号(仅用于专用发票)

issuer

字符

10

开票人

checker

字符

10

复核人

payee

字符

10

收款人

sellerbankacct

字符

100

销方银行及帐号

selleraddrtel

字符

100

销方地址电话

totalamount

数值


发票价税合计

totaltax

数值


发票税额合计

prodnr

字符

50

产品编号

prodname

字符

100

产品名称

spec

字符

50

规格型号

unit

字符

50

计量单位

quantity

数值


数量

price

数值


单价(含税)

amount

数值


金额(含税)

taxrate

数值


税率

tax

数值


税额

 

2.3控件安装

接口按以下步骤安装使用:

开票客户端:

步骤

说明

所需文件

1.安装.Net FrameWork4.0

双击dotNetFx40_Full_x86_x64.exe安装,直至安装成功。

dotNetFx40_Full_x86_x64.exe

2.安装ActiveX控件

双击SetupActiveX.msi安装,直至安装成功。

setup.exe、SetupActiveX.msi

2.4其他注意事项

1.客户端IE设置:

a. Internet选项->添加信任站点

b. Internet选项->自定义级别->和ActiveX有关选项都启用

c. Internet选项->高级->【启用内存保护减少联机攻击】不勾选

2.本地系统工具->事件查看器->应用程序-属性->最大日志文件大小至少512MB

3防火墙阻拦开票打印,请重新设置本地防火墙安全等级。

三、 业务流程

3.1开具发票(含红冲)

3.2重打印发票

3.3作废发票


CRM市场2010年大趋势
专家建议年末来临时不宜实施CRM项目
东南汽车:供应链里的信息流
专注于行业化趋势 CRM赢利模式分析
谈谈实施CRM与企业成功的关系
是否适用? 开源CRM引来市场争议
饭店信息化:IT如何化被动为主动?
化工行业仓库管理问题
信息发布:名易软件http://www.myidp.net