master
parent
8f33ec3b13
commit
1dc3d98596
6 changed files with 381 additions and 1 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,104 @@ |
|||||||
|
const {jsdomFromText, browser} = require("sdenv"); |
||||||
|
const {Script} = require("node:vm"); |
||||||
|
const fs = require("node:fs"); |
||||||
|
const FpCrypt = require("../../routes/service/static/fp/fp-crypt"); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443' |
||||||
|
// TODO 需要文件内的 meta name="_y_ds" content 标签内容
|
||||||
|
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString(); |
||||||
|
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString(); |
||||||
|
|
||||||
|
// TODO:用户登陆token 测试时需要替换
|
||||||
|
var loginCookieStr = "tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; oauth2_referer=etax.hubei.chinatax.gov.cn; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVkNTg4ZjBmN2QxNjQ0NDdhZTczYjBlMzM2ZWIzMGYzIn0.Lmt8PQ7SLdivPrcoa6hxEIW2osZBMFc34ate7WKZ31AtSaOYDDMy1lzVmlBmqaIRNIJUhS18N_jJulWz4XAcJA; tpass_sa67ddd29sc94cga9f96s7da2772s6d7=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVlZjcyMTNmYWYwZTRkYmRiNDMyODU5MmY2NDBjM2EyIn0.jSXIt0ul0pp0Qnb7s7VSdJxVmyfY7fPqzQQg4s2ATS1dluuM49H9Q93oveAxy7URB0s4nMTtWwyTq3mqB_5mpA; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlYzI1Zjc4ZGQyMDRmNTQ5MTAxZGEyNDM2MjFmOGU1In0.0VH-6AoQlwsdXMCV6u9nAWCDBWw_sknQQbZy_IzhlrxXkanffsVByh63GYra3awUBma2w-c6WfCwQBdcJGukMg; znhd-ssotoken=a8a7bf26beac4fd4929980b20971b228; ZNHD_SECURITY_CHECK_TOKEN=e4dd8ea2c69440169aede2fdce9a3180; c_time=12; lzkqow39189=62e6eefdb2b543cbb27e5da3ccc77964; DTSwUOYx7MiWN=dbf1bd80f4cd74303db4ae2373d0fef7e010e65cabec4092adc1bb3c5f0e12af; lzkqow38189=1727159165645; MKls83gqduGS=d533f22b0ea8b548c6980f40cacdea651037f05c13b69c5a911e44b960d2aeea77aefaae90f8f67c2aa51312c7bed440; dzfp-ssotoken=88701997099446368692b6e7550011da; SSO_SECURITY_CHECK_TOKEN=fa8c879fe0e044de8d7e58e8ff656821" |
||||||
|
|
||||||
|
|
||||||
|
getRes() |
||||||
|
async function getRes(){ |
||||||
|
var urlPath = `/szzhzz/swszzhCtr/v1/getNsrjbxx?t=${new Date().getTime()}` |
||||||
|
// TODO:如果有 param 加密后得到 enParam
|
||||||
|
// var param = '{"gjbq":"1","fpztDm":["01","02","03","04"],"fplyDm":"0","fplxDm":[],"kprqq":"2024-09-09","kprqz":"2024-09-25","tfrqq":"2024-09-09","tfrqz":"2024-09-25","sflzfp":"","dtBz":"N","pageNumber":1,"pageSize":0}';
|
||||||
|
var param = "" |
||||||
|
let fpCrypt = new FpCrypt(loginCookieStr); |
||||||
|
|
||||||
|
let handleParam = fpCrypt.handleParam(param, urlPath); |
||||||
|
var enParam = "" |
||||||
|
if (handleParam["enVal"]){ |
||||||
|
enParam = JSON.stringify({'Jmbw': handleParam["enVal"]}); |
||||||
|
console.log(enParam) |
||||||
|
} |
||||||
|
// headers['security-mes-key'] = $e["enMesKey"]
|
||||||
|
let handleSuffix = fpCrypt.handleSuffix(urlPath); |
||||||
|
|
||||||
|
return await get_los(handleSuffix, enParam,""); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
async function get_los(url, param, _y_ds) { |
||||||
|
console.time('js执行时长') |
||||||
|
const [jsDom, cookieJar] = jsdomFromText({ |
||||||
|
url: `${baseUrl}/invoice-query/invoice-query`, |
||||||
|
referrer: baseUrl, |
||||||
|
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', |
||||||
|
contentType: "text/html", |
||||||
|
runScripts: "outside-only", // runScripts: 'dangerously'/'outside-only'
|
||||||
|
}) |
||||||
|
// 加载dom
|
||||||
|
let dom = await jsDom(html); |
||||||
|
const window = dom.window |
||||||
|
|
||||||
|
// 设置 cookie
|
||||||
|
for (let cookie of loginCookieStr.trim().split("; ")) { |
||||||
|
cookieJar.setCookieSync(cookie, baseUrl); |
||||||
|
} |
||||||
|
|
||||||
|
browser(window, 'chrome'); |
||||||
|
// 加载js
|
||||||
|
let script = new Script(js); |
||||||
|
let internalVMContext = dom.getInternalVMContext(); |
||||||
|
// 执行 js
|
||||||
|
script.runInContext(internalVMContext, {timeout: 1000}); |
||||||
|
if (_y_ds){ |
||||||
|
window.$_y_ds = _y_ds |
||||||
|
} |
||||||
|
|
||||||
|
if (window.$dunm.$byno) { |
||||||
|
window.$dunm.$byno(); |
||||||
|
} |
||||||
|
|
||||||
|
let los = window[window["_d_ts"]](url, param); |
||||||
|
|
||||||
|
console.log('js执行完成,返回结果 ', los) |
||||||
|
// 关闭
|
||||||
|
dom.window.close() |
||||||
|
console.timeEnd('js执行时长') |
||||||
|
// console.log(cookieJar.getCookieStringSync(baseUrl))
|
||||||
|
|
||||||
|
|
||||||
|
var getPublicKey = await fetch(`${baseUrl + los.hurl}`, { |
||||||
|
"headers" : { |
||||||
|
'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36", |
||||||
|
'Accept': 'application/json, text/plain, */*', |
||||||
|
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', |
||||||
|
'sso_security_check_token': 'fa8c879fe0e044de8d7e58e8ff656821', |
||||||
|
'x-requested-with': 'XMLHttpRequest', |
||||||
|
'lzkqow23819': `${los.hd}`, |
||||||
|
'nsrsbh': '91420112MA4KNXTP72', |
||||||
|
"cookie": cookieJar.getCookieStringSync(baseUrl), |
||||||
|
}, |
||||||
|
// "body": `${los.bd}`,
|
||||||
|
"method": "GET" |
||||||
|
}); |
||||||
|
|
||||||
|
let newVar = await getPublicKey.json(); |
||||||
|
|
||||||
|
console.log('测试请求', newVar) |
||||||
|
// if (newVar['data']) {
|
||||||
|
// console.log(newVar['data'])
|
||||||
|
// }
|
||||||
|
return newVar |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = getRes |
@ -0,0 +1,115 @@ |
|||||||
|
const {jsdomFromText, browser} = require("sdenv"); |
||||||
|
const {Script} = require("node:vm"); |
||||||
|
const fs = require("node:fs"); |
||||||
|
const FpCrypt = require("../../routes/service/static/fp/fp-crypt"); |
||||||
|
const Fpjcxxid = require("./test_ueryFpjcxxid"); |
||||||
|
const path = require("node:path"); |
||||||
|
|
||||||
|
|
||||||
|
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443' |
||||||
|
// TODO 需要文件内的 meta name="_y_ds" content 标签内容
|
||||||
|
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString(); |
||||||
|
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString(); |
||||||
|
|
||||||
|
// TODO:用户登陆token 测试时需要替换
|
||||||
|
var loginCookieStr = "tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; oauth2_referer=etax.hubei.chinatax.gov.cn; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVkNTg4ZjBmN2QxNjQ0NDdhZTczYjBlMzM2ZWIzMGYzIn0.Lmt8PQ7SLdivPrcoa6hxEIW2osZBMFc34ate7WKZ31AtSaOYDDMy1lzVmlBmqaIRNIJUhS18N_jJulWz4XAcJA; tpass_sa67ddd29sc94cga9f96s7da2772s6d7=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVlZjcyMTNmYWYwZTRkYmRiNDMyODU5MmY2NDBjM2EyIn0.jSXIt0ul0pp0Qnb7s7VSdJxVmyfY7fPqzQQg4s2ATS1dluuM49H9Q93oveAxy7URB0s4nMTtWwyTq3mqB_5mpA; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlYzI1Zjc4ZGQyMDRmNTQ5MTAxZGEyNDM2MjFmOGU1In0.0VH-6AoQlwsdXMCV6u9nAWCDBWw_sknQQbZy_IzhlrxXkanffsVByh63GYra3awUBma2w-c6WfCwQBdcJGukMg; znhd-ssotoken=a8a7bf26beac4fd4929980b20971b228; ZNHD_SECURITY_CHECK_TOKEN=e4dd8ea2c69440169aede2fdce9a3180; c_time=12; dzfp-ssotoken=0599f25295764f91b61f88d59a3ad0c4; SSO_SECURITY_CHECK_TOKEN=9cf80ebd05004b7f93fa368f2b03182a; lzkqow39189=d1cbc99df37e44cab8f7395bb1848b20; DTSwUOYx7MiWN=a89364a6705b4b1bc4a8787a31468789171b639af303a87031524c6ba192462a; lzkqow38189=1727148405079; MKls83gqduGS=d57a49ccbdba10517f28921dbe1a4744ca5488e29a940f7ad142d88bd453ef56823d513c7b24fffada238db8e1add534" |
||||||
|
|
||||||
|
// var urlPath = `/szzhzz/qlfpcx/v1/queryFpjcxx`
|
||||||
|
// TODO:如果有 param 加密后得到 enParam
|
||||||
|
var param = "" |
||||||
|
//var param = '{"gjbq":"1","fpztDm":["01","02","03","04"],"fplyDm":"0","fplxDm":[],"kprqq":"2024-09-09","kprqz":"2024-09-25","tfrqq":"2024-09-09","tfrqz":"2024-09-25","sflzfp":"","dtBz":"N","pageNumber":1,"pageSize":0}';
|
||||||
|
let fpCrypt = new FpCrypt(loginCookieStr); |
||||||
|
|
||||||
|
getRes() |
||||||
|
|
||||||
|
async function getRes(){ |
||||||
|
let res = await Fpjcxxid() |
||||||
|
var id = res.Response.Data |
||||||
|
var urlPath = `/szzhzz/qlfpcx/v1/queryFpjcxxDc?Id=${id}&timeStampId=${new Date().getTime()}` |
||||||
|
console.log('urlPath:',urlPath) |
||||||
|
|
||||||
|
let handleParam = fpCrypt.handleParam(param, urlPath); |
||||||
|
var enParam = "" |
||||||
|
if (handleParam["enVal"]){ |
||||||
|
enParam = JSON.stringify({'Jmbw': handleParam["enVal"]}); |
||||||
|
} |
||||||
|
// headers['security-mes-key'] = $e["enMesKey"]
|
||||||
|
let handleSuffix = fpCrypt.handleSuffix(urlPath); |
||||||
|
|
||||||
|
let res1 = await get_los(urlPath, enParam); |
||||||
|
console.log('111111111111111111111111111111111',res1) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function get_los(url, param, _y_ds) { |
||||||
|
|
||||||
|
console.time('js执行时长') |
||||||
|
const [jsDom, cookieJar] = jsdomFromText({ |
||||||
|
url: `${baseUrl}/invoice-query/invoice-query`, |
||||||
|
referrer: baseUrl, |
||||||
|
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', |
||||||
|
contentType: "text/html", |
||||||
|
runScripts: "outside-only", // runScripts: 'dangerously'/'outside-only'
|
||||||
|
}) |
||||||
|
// 加载dom
|
||||||
|
let dom = await jsDom(html); |
||||||
|
const window = dom.window |
||||||
|
|
||||||
|
// 设置 cookie
|
||||||
|
for (let cookie of loginCookieStr.trim().split("; ")) { |
||||||
|
cookieJar.setCookieSync(cookie, baseUrl); |
||||||
|
} |
||||||
|
|
||||||
|
browser(window, 'chrome'); |
||||||
|
// 加载js
|
||||||
|
let script = new Script(js); |
||||||
|
let internalVMContext = dom.getInternalVMContext(); |
||||||
|
// 执行 js
|
||||||
|
script.runInContext(internalVMContext, {timeout: 1000}); |
||||||
|
if (_y_ds){ |
||||||
|
window.$_y_ds = _y_ds |
||||||
|
} |
||||||
|
|
||||||
|
if (window.$dunm.$byno) { |
||||||
|
window.$dunm.$byno(); |
||||||
|
} |
||||||
|
|
||||||
|
let los = window[window["_d_ts"]](url, param); |
||||||
|
|
||||||
|
console.log('js执行完成,返回结果 ', los) |
||||||
|
// 关闭
|
||||||
|
dom.window.close() |
||||||
|
console.timeEnd('js执行时长') |
||||||
|
// console.log(cookieJar.getCookieStringSync(baseUrl))
|
||||||
|
|
||||||
|
|
||||||
|
var getPublicKey = await fetch(`${baseUrl + los.hurl}&lzkqow23819=${los.hd}`,{ |
||||||
|
headers : { |
||||||
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', |
||||||
|
// 'Sec-Fetch-Site': 'same-origin',
|
||||||
|
// 'Sec-Fetch-Mode': 'navigate',
|
||||||
|
// 'Sec-Fetch-Dest': 'empty',
|
||||||
|
// 'Referer': 'https://dppt.hubei.chinatax.gov.cn:8443/invoice-query/invoice-query?ruuid=1727143148199',
|
||||||
|
// 'Accept-Language': 'zh-CN,zh;q=0.9',
|
||||||
|
"cookie": cookieJar.getCookieStringSync(baseUrl), |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
const arrayBuffer = await getPublicKey.arrayBuffer(); |
||||||
|
const buffer = Buffer.from(arrayBuffer); |
||||||
|
// let file = path.resolve(filePath, fileName);
|
||||||
|
fs.writeFile("./xxxxxxxx.xlsx", buffer, {encoding: 'utf8'}, (err) => { |
||||||
|
if (err) { |
||||||
|
console.error(`文件写入失败 ---> ${err}`) |
||||||
|
} else { |
||||||
|
console.info(`文件写入成功`) |
||||||
|
} |
||||||
|
}) |
||||||
|
// let newVar = await getPublicKey.text();
|
||||||
|
|
||||||
|
console.log('测试请求', buffer) |
||||||
|
// if (newVar['data']) {
|
||||||
|
// console.log(newVar['data'])
|
||||||
|
// }
|
||||||
|
} |
@ -0,0 +1,158 @@ |
|||||||
|
const {jsdomFromText, browser} = require("sdenv"); |
||||||
|
const {Script} = require("node:vm"); |
||||||
|
const fs = require("node:fs"); |
||||||
|
const FpCrypt = require("../../routes/service/static/fp/fp-crypt"); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var baseUrl = 'https://dppt.hubei.chinatax.gov.cn:8443' |
||||||
|
// TODO 需要文件内的 meta name="_y_ds" content 标签内容
|
||||||
|
var html = fs.readFileSync('./invoice-business.html', 'utf8').toString(); |
||||||
|
let js = fs.readFileSync('./chunk-npjg4qgmmrfrjl3r.js', 'utf8').toString(); |
||||||
|
|
||||||
|
// TODO:用户登陆token 测试时需要替换
|
||||||
|
var loginCookieStr = "tpass_p3d8j63p8b6p4bbab8dca4832a7fj9cc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJjNzUxNmI4NWI0NjRiZjlhMDJlNzg2NWIxZmViMGE3In0.xMmdn82GoF9NH8ldYx5mCrHFZhP13041_34uZ51kF9INM7MB33rARWCqhCZiqNZUKwB1WkTH5jDIZLwh_bRYyw; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMDMzMDY5MGU4M2EtMGY0ODdmOGIyMWM4M2I4LTI2MDAxMTUxLTMxNTMzODQtMTkyMDMzMDY5MGYxODIzIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%221920330690e83a-0f487f8b21c83b8-26001151-3153384-1920330690f1823%22%7D; tpass_mcsc7e2ssscb4sfmbsmas35sass2753b=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijk3ZjQ1NjU5MzA4ODRhNmFiOWIxMjNhZDY5MDdkYTU5In0.NABIuYcca0UKpWOwvjiut7f3yn-tIIGZyBBni7S1jFAoaRR_kaH8CTZLxSxfc6-Q6n5hcG1l94prwDFGgzZWYw; tpass_k238ck9eedkb48a9a5d7k5c2c5kkka58=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZkZTE4NTFkZGJhNDQ0MWE5ZWJlMWFjODU5NTNiNjM0In0.qHK5SMznOicFnrhi-1MnF16y2QypCSNLtbi3KE2pD1kyz4yRpLE8Fm4aHQMJ5hMa5aO1ibB-iQ-npD7QkoP3qA; tpass_te95ftefe59243cbafta4fb82bbtfcte=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImViYTMzNDVhYTU0NjQ0NWZhOTdlYmViY2Q3MWNiNWQ4In0.Rk1-kzwo4fneL4FapgQzhzxC-vBVu2zpLHQVfnylQ88x6Ik5QNt3PuyfmqLdoenoR7y69BgAOM3GvLi_KFcsoA; tpass_q4q6b8aa469v4369ae7483c4vb45cvca=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3MWNhNzIyMmRmZjQ1YzQ4YmFjYzViMDExYTY1MjU2In0.rUzqjvnFTAwRxRa49yeiPWqHWNF8WRmsKPayVfGRLuMja5huBOmlpHc-kEXBiGh43ei3t-ZbT7EcvGRga0aZkQ; tpass_mb29dc78543X4X769Hd7d8a35Hdd5236=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxYTYwZjIxZmMwZTRlMDY5NTFkNDI1YWUwOWM3MjFjIn0.V1-LfcMe6VM9W4q_F15gqOxNbA2jRLRVpCml0WFvKTYAGdFqsi3JEgGBvMCL0SEkAOSVhGIn1A9ILjCAuiJ_hg; tpass_c5djdncfa7nj4n2cajna2j68cndbj2fc=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI1NzM2MjUwMDE5MDQyMTNiYzViNmQ0NGI1MGRlMTZlIn0.Es7Q_0jUPcvGddK90anCqeEIBjtl52YZ3669quo27iVjnObAt580ZEHJPjCSLw9vu3HAtPY2SkjYuquc0tItqA; tpass_ue7c9954acea492784ac6g78939gc2e9=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImM4Y2Y1ZGZkYjJkMTQ0NGJiYjM0NGM1ZGJjZDlhY2UwIn0.dfWdZX2tAHcB5Xgb36Y5WQJabicYJYoURhAhWzKu4cSklCYc1lK6-fjbTbiRUNmW3hAQ0lUDUkH3DHVVTuvOjA; tpass_x774e745d5k24ex5a7kkk375x933f654=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM0NjljNWY5MThkZTQ4M2JiY2QwNDcyMjgwMzgwZWFkIn0.NKypnkLFaewOcawUAg_fZQdbFAbgFU1Nqj3ibv3FumIKIW6AZXiD7c0ASR16aTa4B4XUBjrysQiXrHksxRX-OQ; oauth2_referer=etax.hubei.chinatax.gov.cn; tpass_tct8zta97w6c46zdt9zc2648227df5z2=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVkNTg4ZjBmN2QxNjQ0NDdhZTczYjBlMzM2ZWIzMGYzIn0.Lmt8PQ7SLdivPrcoa6hxEIW2osZBMFc34ate7WKZ31AtSaOYDDMy1lzVmlBmqaIRNIJUhS18N_jJulWz4XAcJA; tpass_sa67ddd29sc94cga9f96s7da2772s6d7=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjVlZjcyMTNmYWYwZTRkYmRiNDMyODU5MmY2NDBjM2EyIn0.jSXIt0ul0pp0Qnb7s7VSdJxVmyfY7fPqzQQg4s2ATS1dluuM49H9Q93oveAxy7URB0s4nMTtWwyTq3mqB_5mpA; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlYzI1Zjc4ZGQyMDRmNTQ5MTAxZGEyNDM2MjFmOGU1In0.0VH-6AoQlwsdXMCV6u9nAWCDBWw_sknQQbZy_IzhlrxXkanffsVByh63GYra3awUBma2w-c6WfCwQBdcJGukMg; znhd-ssotoken=a8a7bf26beac4fd4929980b20971b228; ZNHD_SECURITY_CHECK_TOKEN=e4dd8ea2c69440169aede2fdce9a3180; c_time=12; dzfp-ssotoken=0599f25295764f91b61f88d59a3ad0c4; SSO_SECURITY_CHECK_TOKEN=9cf80ebd05004b7f93fa368f2b03182a; lzkqow39189=d1cbc99df37e44cab8f7395bb1848b20; DTSwUOYx7MiWN=a89364a6705b4b1bc4a8787a31468789171b639af303a87031524c6ba192462a; lzkqow38189=1727148405079; MKls83gqduGS=d57a49ccbdba10517f28921dbe1a4744ca5488e29a940f7ad142d88bd453ef56823d513c7b24fffada238db8e1add534" |
||||||
|
|
||||||
|
//getRes()
|
||||||
|
async function getRes(){ |
||||||
|
var urlPath = `/szzhzz/qlfpcx/v1/queryFpjcxxId?t=${new Date().getTime()}` |
||||||
|
// TODO:如果有 param 加密后得到 enParam
|
||||||
|
var param = '{"gjbq":"1","fpztDm":["01","02","03","04"],"fplyDm":"0","fplxDm":[],"kprqq":"2024-09-09","kprqz":"2024-09-25","tfrqq":"2024-09-09","tfrqz":"2024-09-25","sflzfp":"","dtBz":"N","pageNumber":1,"pageSize":0}'; |
||||||
|
let fpCrypt = new FpCrypt(loginCookieStr); |
||||||
|
|
||||||
|
let handleParam = fpCrypt.handleParam(param, urlPath); |
||||||
|
var enParam = "" |
||||||
|
if (handleParam["enVal"]){ |
||||||
|
enParam = JSON.stringify({'Jmbw': handleParam["enVal"]}); |
||||||
|
} |
||||||
|
// headers['security-mes-key'] = $e["enMesKey"]
|
||||||
|
let handleSuffix = fpCrypt.handleSuffix(urlPath); |
||||||
|
|
||||||
|
return await get_los(handleSuffix, enParam,""); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// fpService = new FpService()
|
||||||
|
|
||||||
|
// get_los_test_service()
|
||||||
|
// async function get_los_test_service() {
|
||||||
|
// let los = await fpService.get_los(url, enParam, html, loginCookieStr);
|
||||||
|
// var getPublicKey = await fetch(`${baseUrl + los.hurl}`, {
|
||||||
|
// "headers": {
|
||||||
|
// "accept": "*/*",
|
||||||
|
// "accept-language": "zh-CN,zh;q=0.9",
|
||||||
|
// "cache-control": "no-cache",
|
||||||
|
// "content-type": "text/plain;charset=UTF-8",
|
||||||
|
// "lzkqow23819": `${los.hd}`,
|
||||||
|
// // "bluewareguid": "d8fd3f2be1d8f629",
|
||||||
|
// // "cache-contro": "no-store",
|
||||||
|
// // "connection": "keep-alive",
|
||||||
|
// // "content-length": "421",
|
||||||
|
// // "date": "Mon, 23 Sep 2024 06:38:44 GMT",
|
||||||
|
// // "pragma": "no-cache",
|
||||||
|
// // "server": "Unknown",
|
||||||
|
// // "x-content-options": "nosniff",
|
||||||
|
// // "x-proxy-by": "Tif-accessgate",
|
||||||
|
// // "x-xss-protection": "1;mode=block",
|
||||||
|
// // "pragma": "no-cache",
|
||||||
|
// // "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"",
|
||||||
|
// // "sec-ch-ua-mobile": "?0",
|
||||||
|
// // "sec-ch-ua-platform": "\"Linux\"",
|
||||||
|
// // "sec-fetch-dest": "empty",
|
||||||
|
// // "sec-fetch-mode": "cors",
|
||||||
|
// // "sec-fetch-site": "same-origin",
|
||||||
|
// "sso_security_check_token": "e133ba1f6f124599af5fa5262e1adf02",
|
||||||
|
// "x-requested-with": "XMLHttpRequest",
|
||||||
|
// "cookie": cookieJar.getCookieStringSync(baseUrl),
|
||||||
|
// // "Referer": "https://dppt.hubei.chinatax.gov.cn:8443/invoice-business?ruuid=1726970597058",
|
||||||
|
// "Referrer-Policy": "strict-origin-when-cross-origin"
|
||||||
|
// },
|
||||||
|
// "body": "",
|
||||||
|
// "method": "POST"
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// console.log('测试getPublicKey请求', await getPublicKey.json())
|
||||||
|
// }
|
||||||
|
|
||||||
|
async function get_los(url, param, _y_ds) { |
||||||
|
console.time('js执行时长') |
||||||
|
const [jsDom, cookieJar] = jsdomFromText({ |
||||||
|
url: `${baseUrl}/invoice-query/invoice-query`, |
||||||
|
referrer: baseUrl, |
||||||
|
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', |
||||||
|
contentType: "text/html", |
||||||
|
runScripts: "outside-only", // runScripts: 'dangerously'/'outside-only'
|
||||||
|
}) |
||||||
|
// 加载dom
|
||||||
|
let dom = await jsDom(html); |
||||||
|
const window = dom.window |
||||||
|
|
||||||
|
// 设置 cookie
|
||||||
|
for (let cookie of loginCookieStr.trim().split("; ")) { |
||||||
|
cookieJar.setCookieSync(cookie, baseUrl); |
||||||
|
} |
||||||
|
|
||||||
|
browser(window, 'chrome'); |
||||||
|
// 加载js
|
||||||
|
let script = new Script(js); |
||||||
|
let internalVMContext = dom.getInternalVMContext(); |
||||||
|
// 执行 js
|
||||||
|
script.runInContext(internalVMContext, {timeout: 1000}); |
||||||
|
if (_y_ds){ |
||||||
|
window.$_y_ds = _y_ds |
||||||
|
} |
||||||
|
|
||||||
|
if (window.$dunm.$byno) { |
||||||
|
window.$dunm.$byno(); |
||||||
|
} |
||||||
|
|
||||||
|
let los = window[window["_d_ts"]](url, param); |
||||||
|
|
||||||
|
console.log('js执行完成,返回结果 ', los) |
||||||
|
// 关闭
|
||||||
|
dom.window.close() |
||||||
|
console.timeEnd('js执行时长') |
||||||
|
// console.log(cookieJar.getCookieStringSync(baseUrl))
|
||||||
|
|
||||||
|
|
||||||
|
var getPublicKey = await fetch(`${baseUrl + los.hurl}`, { |
||||||
|
"headers": { |
||||||
|
"security-mes-key": "", |
||||||
|
"accept": "application/json, text/plain, */*", |
||||||
|
"accept-language": "zh-CN,zh;q=0.9", |
||||||
|
"accept-encoding": "gzip, deflate, br, zstd", |
||||||
|
"nsrsbh": "91420112MA49HA6G1W", |
||||||
|
// "origin": "https://dppt.hubei.chinatax.gov.cn:8443",
|
||||||
|
// "cache-control": "no-cache",
|
||||||
|
"content-type": "application/json", |
||||||
|
"lzkqow23819": `${los.hd}`, |
||||||
|
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36", |
||||||
|
// "x-api-type": "xhr",
|
||||||
|
"sso_security_check_token": "91081171bc604d16910500c4982e74ea", |
||||||
|
"x-requested-with": "XMLHttpRequest", |
||||||
|
"cookie": cookieJar.getCookieStringSync(baseUrl), |
||||||
|
// "Referer": "https://dppt.hubei.chinatax.gov.cn:8443/invoice-business?ruuid=1726970597058",
|
||||||
|
"Referrer-Policy": "strict-origin-when-cross-origin", |
||||||
|
// "x-b3-sampled":"1",
|
||||||
|
// "x-b3-spanid": "c850e3c1a85ee988",
|
||||||
|
// "x-b3-traceid": "c850e3c1a85ee988",
|
||||||
|
// "x-tsf-client-timestamp": `${new Date().getTime()}000`
|
||||||
|
}, |
||||||
|
"body": `${los.bd}`, |
||||||
|
"method": "POST" |
||||||
|
}); |
||||||
|
|
||||||
|
let newVar = await getPublicKey.json(); |
||||||
|
|
||||||
|
console.log('测试请求', newVar) |
||||||
|
// if (newVar['data']) {
|
||||||
|
// console.log(newVar['data'])
|
||||||
|
// }
|
||||||
|
return newVar |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = getRes |
Loading…
Reference in new issue