国税局发票查验api接口的开发
作者:互联网
对于发票查验来说,如果有多张发票需要查验,从国税局发票查验网站一张张的输入去查,那么效率就显得太慢了,因此想办法自己写一个接口对接国税局。
1 查验请求参数分析
在国税局上进行一次发票查验,用fiddler去抓取请求
然后查看fiddler,如下所示:
可以看到发票查验有两个请求,第一个请求为验证码请求,第二个请求为查验请求。
验证码请求和查验请求有两个最重要加密参数key9和flwq39,破解了这4个加密参数的生成规则,也就代表可以自己写查验接口了。
2 加密参数的生成
国税局查验网站有反调试手段,当在网页上按F12时,会出现debugger,这种时候需要利用fiddler进行删掉反调试代码,然后有的js代码混淆了,可以采用反混淆,推荐一个不错的反混淆网站。
反混淆注意有的代码需要把正则表达式的判断函数里,把返回的改成true,可以搜素一个js文件RegExp
最后利用fiddler在线替换js文件,从而去掉了反调试。
自己的分析如下:
验证码请求的key9函数入口js在eab23.js 搜索key9
发票查验的key9入口点js在90a1c.js中 搜索key9
两个flwq39均在动态js中的beforeSend里 搜素beforeSend
找到函数入口,就可以一点点扣js代码,将其生成规则写出来。
3 验证码识别
验证码识别的方法详见我的另一篇博客,英文字符的识别率高达99.99%。
通过以上方法,就可以写出自己查验接口了,方便自己更有效率的进行发票查验。
4 查验的测试
我在自己的阿里云上放了一个自己的查验服务
请求地址:http://47.107.92.103:11001/fpcy
请求类型:post请求
请求参数为json格式:Content-Type: application/json; charset=utf-8
{
"fpdm": "发票代码",
"fphm": "发票号码",
"kprq": "开票日期",
"value": "校验项目",
“sqm”:”授权码”
}
测试时候sqm授权码可以传入test参数,该test授权码每天提供了100次试用机会,先来先得。
查验结果如下:
有这这方面需求的合作方可以与我私聊进行技术讨论。
标签:查验,key9,请求,国税局,验证码,js,api,发票 来源: https://blog.csdn.net/qq_37781464/article/details/121019312