master
林元实 8 months ago
parent 8d59d25cfd
commit 6b579d6b6d
  1. 63
      routes/service/FpService.js
  2. 2
      test/fp/invoice-business.html
  3. 4
      test/fp/test_fp_fetch.js

@ -1,3 +1,4 @@
const CryptoJS = require('crypto-js');
const {jsdomFromText, browser} = require("sdenv"); const {jsdomFromText, browser} = require("sdenv");
const {Script} = require("node:vm"); const {Script} = require("node:vm");
const fs = require("node:fs"); const fs = require("node:fs");
@ -45,5 +46,67 @@ class FpService {
console.timeEnd('js执行时长') console.timeEnd('js执行时长')
return los return los
} }
random_32 (param){
var n, i,e=null,
a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"["split"](""), c = [];
if (e = e || a["length"], 32) for (n = 0; n < 32; n++) c[n] = a[0 | (Math["random"]() * e)]; else for (c[8] = c[13] = c[18] = c[23] = "-", c[14] = "4", n = 0; (n < 36); n++) c[n] || (i = 0 | (16 * Math["random"]()), c[n] = a[19 === n ? 8 | (3 & i) : i]);
console.log(`生成随机 ${e} 位字符串`, c["join"](""))
return c["join"]("")
}
get_cookie (key,loginCookieStr){
var key_list = loginCookieStr.split("; ")
for(var k=0 ; key_list["length"]>k;k++){
if (key_list[k].includes(key)){
return key_list[k].split("=")[1]
}
}
}
reverse_str (t,loginCookieStr){
var i = this.get_cookie("dzfp-ssotoken",loginCookieStr), r = this.qe(i),
c = t.split('').reverse().join("") + i.split('').reverse().join(""),
u = "";
for (var s = 0; s < c["length"]; s += r) {
var l = c["substring"](s, s + r);
u += l.split('').reverse().join("")
}
var res = u["substring"](0, 20);
console.log('倒叙处理字符返回20位', res)
return res;
}
qe (n){
null === n && (n = "");
var o = n["match"]("[0-9]+");
if ((null===o)) o = 3; else {
var a = o["index"];
o = parseInt(n["substring"](a, (a + 1)), 10) + 3
}
return o
}
get_url (url) {
return url+"?"
}
hex_md5 (reverse_str,url){
var strlist = reverse_str+"+"+this.get_url(url)
var res = CryptoJS.MD5(strlist).toString()
console.log('md5:',res)
return res
}
aes_encrypt (value,key) {
const srcs = CryptoJS.enc.Utf8.parse(value);
const key1 = CryptoJS.enc.Utf8.parse(key);
const cipherTxt = CryptoJS.AES.encrypt(srcs, key1,{
mode: CryptoJS.mode.ECB, //ECB模式
padding: CryptoJS.pad.Pkcs7 //padding处理
}).toString();
console.log('aes:',cipherTxt)
return cipherTxt
}
} }
fp = new FpService()
fp.random_32()
fp.get_cookie("dzfp-ssotoken","tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA3NGE2NzEzZGE2ZjQ0YTFiMjA3ODRhZGM0MmUxNmM5In0.zgO2rco0oWhTgOX6tVbZVoLI_qysOfJ1fdlcghe8KyI3iUmFV_IuHvZINQWeSmKesyefAyOxWflWsbSzQiiOgw; oauth2_referer=tpass.zhejiang.chinatax.gov.cn; dzfp-ssotoken=4fa8538cee014e3b84f88ead04610dea; SSO_SECURITY_CHECK_TOKEN=bd1e0dc3898d4239af9c3b11dc8b7983; lzkqow39189=9ef06defe6d34ad7aba79ae8bbe419f8; DTSwUOYx7MiWN=dcf74815ad6d7fef22601131e58a180b8a80b714fe9224c72c6b881b3f42d8b3")
fp.reverse_str("","tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA3NGE2NzEzZGE2ZjQ0YTFiMjA3ODRhZGM0MmUxNmM5In0.zgO2rco0oWhTgOX6tVbZVoLI_qysOfJ1fdlcghe8KyI3iUmFV_IuHvZINQWeSmKesyefAyOxWflWsbSzQiiOgw; oauth2_referer=tpass.zhejiang.chinatax.gov.cn; dzfp-ssotoken=4fa8538cee014e3b84f88ead04610dea; SSO_SECURITY_CHECK_TOKEN=bd1e0dc3898d4239af9c3b11dc8b7983; lzkqow39189=9ef06defe6d34ad7aba79ae8bbe419f8; DTSwUOYx7MiWN=dcf74815ad6d7fef22601131e58a180b8a80b714fe9224c72c6b881b3f42d8b3")
fp.get_url("/szzhzz/qlfpcx/v1/queryFpjcxx")
fp.hex_md5("6dcfffb8e51944a2c234","/szzhzz/qlfpcx/v1/queryFpjcxx")
fp.aes_encrypt('2JYO2qCKaCPSwUaIcazRtIkpNRH68m9s{"gjbq":"1","fpztDm":["01","02","03","04"],"fplyDm":"0","fplxDm":[],"kprqq":"2024-09-08","kprqz":"2024-09-24","tfrqq":"2024-09-08","tfrqz":"2024-09-24","sflzfp":"","dtBz":"N","pageNumber":1,"pageSize":20}',"714acfe38a3df9da5651d01fd223d74d")
module.exports = FpService module.exports = FpService

File diff suppressed because one or more lines are too long

@ -2,14 +2,14 @@ const {jsdomFromText, browser} = require("sdenv");
const {Script} = require("node:vm"); const {Script} = require("node:vm");
const fs = require("node:fs"); const fs = require("node:fs");
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443' var baseUrl = 'https://dppt.zhejiang.chinatax.gov.cn:8443'
// TODO 需要文件内的 meta name="_y_ds" content 标签内容 // TODO 需要文件内的 meta name="_y_ds" content 标签内容
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString(); var html = fs.readFileSync('./invoice-business.html', 'utf8').toString();
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString(); let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString();
// TODO:用户登陆token 测试时需要替换 // TODO:用户登陆token 测试时需要替换
var loginCookieStr = "tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg5OWU0YmY0Zjc1MDQ2MjVhN2Q5ZDhlOGI1NDgzMzIyIn0.uLlvtURVPmXLcdNNJ3CXhGny-DkOGdxwpNXUG6PFHvdU1neB9KuAtv-BgMASpVNkDdcaE7X83KNYQBo71RRgsw; oauth2_referer=tpass.hubei.chinatax.gov.cn; dzfp-ssotoken=ead1a9f890334b87afe794f7a7cb253b; SSO_SECURITY_CHECK_TOKEN=d993b316a5364fe0b6468097ff17ed34; lzkqow39189=b3ed138d997243298f97b8928c890282; DTSwUOYx7MiWN=7e54eee01efbde62fbfd2ee721ffdeb410a0c8af47c6187720cb2c505694923f" var loginCookieStr = "tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA3NGE2NzEzZGE2ZjQ0YTFiMjA3ODRhZGM0MmUxNmM5In0.zgO2rco0oWhTgOX6tVbZVoLI_qysOfJ1fdlcghe8KyI3iUmFV_IuHvZINQWeSmKesyefAyOxWflWsbSzQiiOgw; oauth2_referer=tpass.zhejiang.chinatax.gov.cn; dzfp-ssotoken=4fa8538cee014e3b84f88ead04610dea; SSO_SECURITY_CHECK_TOKEN=bd1e0dc3898d4239af9c3b11dc8b7983; lzkqow39189=9ef06defe6d34ad7aba79ae8bbe419f8; DTSwUOYx7MiWN=dcf74815ad6d7fef22601131e58a180b8a80b714fe9224c72c6b881b3f42d8b3"
async function get_los(url, param) { async function get_los(url, param) {
console.time('js执行时长') console.time('js执行时长')

Loading…
Cancel
Save