master
parent
0136ced2d8
commit
109e41ef59
4 changed files with 51 additions and 334 deletions
@ -1,152 +0,0 @@ |
|||||||
const {jsdomFromText, browser} = require("sdenv"); |
|
||||||
const {Script} = require("node:vm"); |
|
||||||
const fs = require("node:fs"); |
|
||||||
const FpService = require("../../routes/service/FpService"); |
|
||||||
|
|
||||||
|
|
||||||
var baseUrl = 'https://dppt.zhejiang.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 = "je_ZDJWEB_yata=cXTzj3v4+3165323393-yalIYCJ05DN8B6DTPfDeM61T5CI3I4cC3FP75jwPnMkf_qB7HxhyG5GhzYkIFBPY244.rfe0MYTecRlwCLyS6hMgB0YU8cpPWr1b2rtLSs_qPWXEJ5kTXkuSh7UvS6hlEs9y.klvTS3UEFSS2519FfZYLksWJ4ztQhQPmahdJTf0jzMppNV4C6m4YPCyF4lh8cC3WxYbPmuCj_zoj9LhUsXuZyDIibMHc.5UiEa7DZyiKhye1k..MWZiAAxj4RkH2rzMQHRNdv_44gpJ_aziuG; tpass_b6edq5qqc5cb4c3288q6aq6fab5qc3b4=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJiMWUyODM0NDFhMDQyMmM4NjFlNjVkNDAzOGM1MzliIn0.4Lig52xJVe4x4k9D92LZQta5zaIwq5HP4H1cF03ZIR6VUOY7BhncprybJSXI462SFaW3dCrCXXjFpsyQHPykHg; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221920a3a0885434-06be597a22b1f88-11462c6f-2304000-1920a3a0887b9b%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyMGEzYTA4ODU0MzQtMDZiZTU5N2EyMmIxZjg4LTExNDYyYzZmLTIzMDQwMDAtMTkyMGEzYTA4ODdiOWIifQ%3D%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%221920a3a0885434-06be597a22b1f88-11462c6f-2304000-1920a3a0887b9b%22%7D; oauth2_referer=etax.hubei.chinatax.gov.cn; znhd-ssotoken=d00fba1d7d73401b8aa2d008234df5b1; ZNHD_SECURITY_CHECK_TOKEN=939148dc70c1496b926904cc7326d909; tpass_n6s4de5cb89s4cf28997482cfnb7s4en=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjYyNDI5NzM0OTM1YjQyYmNhOTYwY2E4YzY3MTJiNmYzIn0.cQnl9J7wDlqrVeLjU3uAvC426DX44G54zYyMC7BegVevBmYnxPzJ8xUwdXzx9iAyllX8pg3SQSHuJvhAB30FRQ; dzfp-ssotoken=1f79917177a7489182ba5a9b66c4a783; SSO_SECURITY_CHECK_TOKEN=e133ba1f6f124599af5fa5262e1adf02; c_time=12; lzkqow39189=3b75ba15b15841b38729a471b94e74e2; DTSwUOYx7MiWN=35c13e79ebbc1ef1f265f177f1265336ac2db9dee59aeada8ffa27d8625d11c; lzkqow38189=1727077285706; MKls83gqduGS=babe09d5d2cce903861bbeb88282ebf939f78297e74f39c9b40e5bd349d5140eebbd3c92bac04d1ef79d04dfe0574a32" |
|
||||||
|
|
||||||
fpService = new FpService() |
|
||||||
|
|
||||||
|
|
||||||
var url = `/szzhzz/cssSecurity/v1/getPublicKey?t=${new Date().getTime()}` |
|
||||||
// TODO:如果有 param 加密后得到 enParam
|
|
||||||
var enParam = "" |
|
||||||
// get_los(url, enParam);
|
|
||||||
|
|
||||||
|
|
||||||
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) { |
|
||||||
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 (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": { |
|
||||||
// "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": "d993b316a5364fe0b6468097ff17ed34",
|
|
||||||
// "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" |
|
||||||
}); |
|
||||||
// {
|
|
||||||
// "ruuid":1727075086647,
|
|
||||||
// "security-token-key":"dzfp-ssotoken",
|
|
||||||
// "tokenKey":"2e488a0f3bb44011a69e0508be32d1e5",
|
|
||||||
// "sign":"38b5dc93648cc6e984228f1c4cacddd5",
|
|
||||||
// "securityrate":900,
|
|
||||||
// "publicKey":"MIGf1MA0GCSqGSI2b03DQEBAQUAA4GNADCBiQKBgQCWDd8IFBrE4mBL/QCRv6JaDXtku2Onfq0ddfwlrVbsQtrAzVGuFlBwX+ElZk2qjLMKy5p8hww+CwTrV4g2tmAEb/iZsgqosaKtM7OsrnQ7Zisv7gHgVLxTGlFBPBcaCNYFi31SwktZzwt4SbXTlAmDqYmhqVooSrpT9tBrO6artQIDAQAB",
|
|
||||||
// "securityrate1":300
|
|
||||||
// }
|
|
||||||
|
|
||||||
console.log('测试getPublicKey请求', await getPublicKey.json()) |
|
||||||
} |
|
||||||
|
|
||||||
// TODO:如果有 param 加密后得到 enParam
|
|
||||||
get_los(url, enParam); |
|
||||||
|
|
Loading…
Reference in new issue