调用方法一:(SHKJKP.dll)
32位
functionSHKP(parameter:pansichar):pansichar;stdcall; external SHKJKP.dll';
64位平台
functionSHKP(parameter:pansichar):pansichar;stdcall; external SHKJKPx64.dll';
说明:不同的parameter功能传不同的值,下面为各功能的值。
相应文件可以在http://sh-gz.cn/下载
航天初始化:
'{"LX":"Of_Uninit"}'
'{"LX":"Of_init","QYSH":"企业税号","CERT":"12345678","FJH":"0"}'
JSON说明:企业税号,证书密码,分机号
百旺初始化
'{"LX":"of_bw_init","URL":"https://skfp.tax.sh.gov.cn/acceptFramework/UniAcceptService","JSPPASSWORD":"","ZSPASSWORD":"12345678"}'
JSON说明:税务局URL(参考百旺的参数设置),金税盘口令,证书口令
初始化调用示例1: 传入参数:{"LX":"of_bw_init","JSPPASSWORD":"66666666","ZSPASSWORD":"12345678"}
初始化返回值: 成功 {"Result":"1","Message":""}
失败 {"Result":"0","Message":"失败说明"}
获取发票信息
'{"LX":"GetInfo","KPJLX":"0","FPZL":"41"}'
JSON说明:
开票机类型(0航天1百旺)、发票种类(0 专票,2 普票,51 电票,41卷式发票 12 机动车发票)
调用示例1: 查询参数:{"LX":"GetInfo","KPJLX":"1","FPZL":"0"}
返回{"Result":"1","FPDM":"4400173130","FPHM":"4094639","COUNT":"79","Message":""}
开票
'{"LX":"KP","KPJLX":"0","FPZL":"41","TEST":"1","XML":"XML并且经过base64编码"}'
JSON说明:
开票机类型(0航天1百旺)、发票种类 (0 专票,2 普票,51 电票,41卷式发票 12 机动车发票),TEST 是否检验数据1不开票仅做数据检查、0直接开票,KP的xml数据
开票调用示例1: 传入参数:
{"LX":"KP","KPJLX":"1","FPZL":"0","XML":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0IyMzEyIj8+DQo8Q29uZmlnPg0KICA8SW52b2ljZUxpc3Q+DQogICAgICAgIDxJbnZIZWFkIEludm9pY2VOdW1iZXI9IjQ5ODQwMzEwNTIwNjEzMTIiIEN1c3RvbWVyTmFtZT0iyc+6o760zamyzdL7udzA7dPQz965q8u+IiBDdXN0b21lclRheENvZGU9IjkxMzEwMjMwTUExSlk0TFE5UCIgQWRkcmVzc0FuZFBob25lPSKz58P3x/izx8fF1fLQ48m9wrc4usUztLHSu8f4MDIxLTgwMzkyNDE3IiBCYW5rQW5kQWNjb3VudD0i1tC5+sWp0rXS+NDQu8a2ydan0NAwMzgzMDEwMDA0MDA0ODM2MyIgSkdDUz0iMSIgU2VsbGVyQmFua05hbWU9ItXQyczS+NDQucm33dPQz965q8u+xP6yqL2tsbHWp9DQNTc0OTA2MjUzNjEwMjAxIiBLSFNKPSIxMzY4MTIzNDU2NzgiIEtIWUo9IjMyOTEwNDQ4NDZAcXEuY29tIiBTZWxsZXJBZHJyUGhvbmU9IrnjtqvKobnj1t3K0MzsutPH+NbQyb2087XAMTAzNbrF06+4u8nMzvG088/DN8KlMDIwMTIzNDU2NzgiIFNlbGxlclRheENvZGU9IjkxNDQwMTAxTUE1OUxDSzE3MCIgRlBaTD0iMCIgSW52b2ljZU1lbW89IrG416IxMjMiIEtQUj0iwLXQocflIiBTS1I9Ire2zsC9+iIgRkhSPSK3ts7AvfoiIEZQSE09IiIgQ0hGUEg9IiIgQW1vdW50PSIxMDAiIFRheEFtb3VudD0iNiIgSW5UYXhBbW91bnQ9IjEwNiIgVGF4UmF0ZT0iNiIgSXNMaXN0aW5nPSIwIiBKRUZTPSIwIiBSb3dDb3VudD0iMCIvPg0KICAgICAgICA8SW52RGV0YWlsPg0KICAgICAgICAgICAgPERldGFpbEVudHJ5IFByb2R1Y3RDb2RlPSIzMDQwMjAxMDMiIEVudHJ5TnVtYmVyPSIxIiBQcm9kdWN0TmFtZT0ivLzK9bf+zvG30SIgUHJvZHVjdE1vZGVsPSLV+8zXIiBQcm9kdWN0VW5pdD0izNciIFRheFJhdGU9IjYiIFF1YW50aXR5PSIxIiBQcmljZT0iMTAwIiBIU0RKPSIxMDYiIEFtb3VudD0iMTAwIiBUYXhBbW91bnQ9IjYiIFJvd0F0dHJpYj0iMCIgUHJvZHVjdFR5cGVzPSI0MDAxIiBGbGJtPSIzMDQwMjAxMDMwMDAwMDAwMDAwIiBYc3loPSIwIiBMc2x2YnM9IiIgWWhzbT0iIi8+DQogICAgICAgIDwvSW52RGV0YWlsPg0KICA8L0ludm9pY2VMaXN0ID4NCjwvQ29uZmlnPg0K"}
开票返回值:
{"Result":"1","XML":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0IyMzEyIj8+DQo8Q29uZmlnPg0KCTxJbnZvaWNlTGlzdD4NCgkJPEludkhlYWQgSW52b2ljZU51bWJlcj0iNDk4NDAzMTA1MjA2MTMxMiIgQ3VzdG9tZXJOYW1lPSLJz7qjvrTNqbLN0vu53MDt09DP3rmry74iIEN1c3RvbWVyVGF4Q29kZT0iOTEzMTAyMzBNQTFKWTRMUTlQIiBBZGRyZXNzQW5kUGhvbmU9IrPnw/fH+LPHx8XV8tDjyb3Ctzi6xTO0sdK7x/gwMjEtODAzOTI0MTciIEJhbmtBbmRBY2NvdW50PSLW0Ln6xanStdL40NC7xrbJ1qfQ0DAzODMwMTAwMDQwMDQ4MzYzIiBKR0NTPSIxIiBTZWxsZXJCYW5rTmFtZT0i1dDJzNL40NC5ybfd09DP3rmry77E/rKova2xsdan0NA1NzQ5MDYyNTM2MTAyMDEiIEtIU0o9IjEzNjgxMjM0NTY3OCIgS0hZSj0iMzI5MTA0NDg0NkBxcS5jb20iIFNlbGxlckFkcnJQaG9uZT0iueO2q8qhuePW3crQzOy608f41tDJvbTztcAxMDM1usXTr7i7yczO8bTzz8M3wqUwMjAxMjM0NTY3OCIgU2VsbGVyVGF4Q29kZT0iOTE0NDAxMDFNQTU5TENLMTcwIiBGUFpMPSIwIiBJbnZvaWNlTWVtbz0isbjXojEyMyIgS1BSPSLAtdChx+UiIFNLUj0it7bOwL36IiBGSFI9Ire2zsC9+iIgRlBITT0iIiBDSEZQSD0iIiBBbW91bnQ9IjEwMCIgVGF4QW1vdW50PSI2IiBJblRheEFtb3VudD0iMTA2IiBUYXhSYXRlPSI2IiBJc0xpc3Rpbmc9IjAiIEpFRlM9IjAiIFJvd0NvdW50PSIwIiBSRVRDT0RFPSIwMDAwMDAzMiIgUkVUTVNHPSLLsL/YyeixuNC0t6LGscP3z7jKsdLss6MgIERpc2tFcnI6MDlkMTFmIi8+DQoJCTxJbnZEZXRhaWw+DQoJCQk8RGV0YWlsRW50cnkgUHJvZHVjdENvZGU9IjMwNDAyMDEwMyIgRW50cnlOdW1iZXI9IjEiIFByb2R1Y3ROYW1lPSK8vMr1t/7O8bfRIiBQcm9kdWN0TW9kZWw9ItX7zNciIFByb2R1Y3RVbml0PSLM1yIgVGF4UmF0ZT0iNiIgUXVhbnRpdHk9IjEiIFByaWNlPSIxMDAiIEhTREo9IjEwNiIgQW1vdW50PSIxMDAiIFRheEFtb3VudD0iNiIgUm93QXR0cmliPSIwIiBQcm9kdWN0VHlwZXM9IjQwMDEiIEZsYm09IjMwNDAyMDEwMzAwMDAwMDAwMDAiIFhzeWg9IjAiIExzbHZicz0iIiBZaHNtPSIiLz4NCgkJPC9JbnZEZXRhaWw+DQoJPC9JbnZvaWNlTGlzdD4NCjwvQ29uZmlnPg0K"}
作废
'{"LX":"ZF","KPJLX":"0","FPZL":"41","FPDM":"","FPHM":""}'
JSON说明:
开票机类型(0航天1百旺)、发票种类 (0 专票,2 普票,51 电票,41卷式发票 12 机动车发票)、发票代码,发票号码
作废调用 示例1:
传入参数{"LX":"ZF","KPJLX":"1","FPZL":"0","FPDM":"4400173130","FPHM":"04138547"}
返回值 {"Result":"0","Message":"FPZF-ZF-不能作废发票或开具红字发票,原发票已开作废发票"}
打印发票
'{"LX":"PrintFP","KPJLX":"0","FPZL":"41","FPDM":"","FPHM":"","QDBZ":"","ISVISIBLE":""}'
JSON说明:
开票机类型(0航天1百旺)、发票种类(0 专票,2 普票,51 电票,41卷式发票 12 机动车发票),发票代码,发票号码,打印类型(0打印发票 1打印清单),是否显示打印设置窗口(0不显示 1显示)
打印调用示例1:
传入参数:
{"LX":"PrintFP","KPJLX":"1","FPZL":"0","FPDM":"4400173130","FPHM":"04138532","QDBZ":"0","ISVISIBLE":"0"}
返回值 :{"Result":"1","Message":""}
调用方法二:采用OCX调用
COM名称:KPOCXDLL.KP
functionSHKP(const Param1: WideString): WideString; safecall;
调用方法三:在 B/S架构中,JS写法
myCst.CallFun('SHKJKP.dll','SHKP','{"LX":"Of_init","QYSH":"税号","CERT":"12345678","FJH":"0"}');
myCst.CallFun('SHKJKP.dll','SHKP',''{"LX":"Of_Uninit"}');
myCst.CallFun('SHKJKP.dll','SHKP',''{"LX":"of_bw_init","JSPPASSWORD":"","ZSPASSWORD":"12345678"}'
);
alert(myCst.CallFun('SHKJKP.dll','SHKP','{"LX":"GetInfo","KPJLX":"0","FPZL":"41"}'));
alert(myCst.CallFun('SHKJKP.dll','SHKP','{"LX":"KP","KPJLX":"0","FPZL":"41","XML":"XML并且经过base64编码"}'));
alert(myCst.CallFun('SHKJKP.dll','SHKP','{"LX":"ZF","KPJLX":"0","FPZL":"41","FPDM":"","FPHM":""}'));
alert(myCst.CallFun('SHKJKP.dll','SHKP','{"LX":"PrintFP","KPJLX":"0","FPZL":"41","FPDM":"","FPHM":"","QDBZ":"0","ISVISIBLE":"1"}'));
xml:说明:
如果是多张发票:那么就多个 InvoiceList节点,如果一张发票,多行明细,那么就多个 DetailEntry节点
名称
说明
是否可以为空
备注
默认值
InvoiceNumber
单据号
否
CustomerName
客户名称
否
CustomerTaxCode
客户税号
是
按税务规定,开具给企业的发票必需有税号
AddressAndPhone
客户地址电话
是
BankAndAccount
客户银行账号
是
KHSJ
客户手机
是
KHYJ
客户邮件
是
SellerBankName
销方银行账号
否
SellerAdrrPhone
销方地址和电话
否
SellerTaxCode
销方税号
否
FPZL
发票种类
否
InvoiceMemo
备注
是
KPR
开票人
否
SKR
收款人
是
FHR
复核人
是
FPHM
红冲发票原发票号
是
当发票种类是普票、电票、卷票、运输发票并且JEFS=1时,必需传原发票号过来
CHFPH
红字信息表编码
是
当发票种类是专票并且JEFS=1时,必需传红字信息表编号
Amount
整张发票不含税金额
否
等于 明细行的 Amount 之和
TaxAmount
整张发票税额
否
等于 明细行的 TaxAmount 之和
InTaxAmount
整张发票价税合计
否
等于 Amount+ TaxAmount
TaxRate
税率
是
可以是17,也可以是0.17,当明细行有多种税率时,必需是空
IsListing
是否强制开具清单
否
0 不进行强制,由系统自动处理,当超过8行明细时,系统自动出具清单。
1 进行强制转换成清单,强制转换后,没超过8行明细也会出具清单
0
JEFS
开具类型
否
0 正常发票 1 红字发票
0
RowCount
明细汇总行数
否
用固定值 0
0
明细字段说明
ProductCode
产品代码
是
EntryNumber
行号
否
从1开始算起
ProductName
产品名称
否
ProductModel
产品型号
是
ProductUnit
产品单位
是
TaxRate
税率
否
可以是17,也可以是0.17
Quantity
数量
是
当不需要打印数量时,传空
Price
不含税价
是
当不需要打印单价时,传空
HSDJ
含税价
是
当不需要打印单价时,传空
Amount
不含税金额
否
TaxAmount
税额
否
RowAttrib
行性质
否
正常行 :0 被折扣行 3 折扣行 4
ProductTypes
商品税目
是
4001代表是 商品销售
4001
Flbm
分类编码
否
Xsyh
税收优惠
否
无税收优惠0 有税收优惠1
Lslvbs
零税率标志
是
当税收优惠=1时 免税 1出口零税 0不征税 2 其它3,当税收优惠是0时,空
Yhsm
优惠说明
是
注意:如果红字 带清单的,只需要传一行明细, 产品名称必需是 详见对应正数发票及清单
---------------------
作者:f805122102
来源:CSDN
原文:https://blog.csdn.net/f805122102/article/details/80108194
版权声明:本文为博主原创文章,转载请附上博文链接!