shawenguan 1 年間 前
コミット
6a2d3d62f2
1 ファイル変更133 行追加28 行削除
  1. 133 28
      Scripts/pingan/pinganIkea.js

+ 133 - 28
Scripts/pingan/pinganIkea.js

@@ -18,6 +18,13 @@ hostname = b.pingan.com.cn,rsb.pingan.com.cn,rmb.pingan.com.cn
 
 const scriptName = `平安银行宜家礼品卡优惠券`;
 const magicJS = MagicJS(scriptName, "INFO");
+const PingAnIKEAConstKey = {
+    // 基础数据
+    Cookie: 'Cloud115Cookie',
+    SignInBody: 'Cloud115SignInBody',
+    SignInToken: 'Cloud115SignInToken',
+    SignInTokenTime: 'Cloud115SignInTokenTime',
+};
 
 let gRetBody;
 
@@ -50,6 +57,28 @@ let errCodeStrMap = {
     900203: "notSendAble",
     999999: "stockValidateText"
 };
+const gHost = 'b.pingan.com.cn';
+const gHomePageUrl = `https://b.pingan.com.cn/kuaizhan/v2/5K2422/20230925/k84123/index.html?paesuperbank=%7B%22dLinkId%22%3A%22M0P5EnN0addUoXCs240814104407%22%7D`;
+
+const gWebUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.50(0x18003237) NetType/WIFI Language/zh_CN`;
+
+let gDeviceId = 'AUUID_918d439ffcef935c2fd84d3a3e593b6523c916fc';
+
+const gAppUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 iphone 14 pro AladdinHybrid/4.8.77 (PAEBank 6.23.0) AladdinBridge/3.0.0 subContracting/AppStore deviceId/${gDeviceId} UnionPay/1.0 PABANK deviceType/1 networkState/WIFI KiwiBridge/1.0.0 device-dpr/3 device-dr/852*393 AppStyle/BZ bz-navbarHeight/309 dzTab-navbarHeight/327 pageActionId/1F908E50`;
+
+const gCommonHeaders = {
+    'Cookie': ``,
+    'Sec-Fetch-Mode': `navigate`,
+    'Connection': `keep-alive`,
+    'Accept': `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`,
+    'Accept-Encoding': `gzip, deflate, br`,
+    'Host': `b.pingan.com.cn`,
+    'User-Agent': `${gAppUserAgent}`,
+    'Sec-Fetch-Site': `none`,
+    'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
+    'Sec-Fetch-Dest': `document`,
+    // 'If-Modified-Since': `Thu, 18 Jul 2024 11:10:01 GMT`
+};
 
 async function Main() {
     if (magicJS.isStrictRequest) {
@@ -82,6 +111,7 @@ function checkHandleRequest() {
             case '/brop/mop/cust/mopsf/nrp/uc/simple/rule/info/batchSatisfy':
                 break;
             case '/brop/cmp/cust/cmpsf/mgm/origin/queryPageConfig.do':
+                handlePageConfig();
                 break;
             case '/brcp/uc/cust/uc-login-web.qryLoginStatus.do':
             case '/rmb/brcp/uc/cust/uc-login-web.qryLoginStatus.do':
@@ -90,8 +120,12 @@ function checkHandleRequest() {
             case '/brop/mop/cust/mopsf/uc/auth/lottery/queryCustomerActivityStatus':
                 handleCustomerActivityStatus();
                 break;
+            case '/brop/mop/cust/mopsf/lottery/getLeftOfferNum':
+                break;
             default:
-                if (path.indexOf('/brop/mop/cust/mopsf/personality/activity/status/query') > -1) {
+                if (path.indexOf('/kuaizhan/v2/5K2422/20230925/k84123/index.html') > -1) {
+                    handleHomePage();
+                } else if (path.indexOf('/brop/mop/cust/mopsf/personality/activity/status/query') > -1) {
                     handlePublicActivityStatus();
                 } else if (path.indexOf('/bron/coss/cust/app/getSupernatant') > -1) {
 
@@ -129,42 +163,83 @@ function getQueryPlainData() {
     return params;
 }
 
+function handleHeaders() {
+    let headers = $request.headers;
+    if (headers['Cookie']) {
+        let newCookieStr = headers['Cookie'];
+        // let cookieDict = magicJS.parseCookies(oldCookieStr);
+        if (newCookieStr != void 0) {
+            let oldCookieStr = magicJS.data.read(PingAnIKEAConstKey.Cookie, null);
+            if (newCookieStr != oldCookieStr) {
+                magicJS.data.write(PingAnIKEAConstKey.Cookie, newCookieStr);
+                magicJS.logger.info(`当前Cookie刷新到最新`);
+                magicJS.notification.appendNotifyInfo(`🎉当前Cookie刷新到最新`);
+            } else {
+                magicJS.logger.info(`当前Cookie已经是最新无需更新`);
+            }
+        }
+    }
 
-async function getPageData() {
-    let url = `https://b.pingan.com.cn/kuaizhan/v2/5K2422/20230925/k84123/pageData.js?v=${new Date().getTime()}`;
-    let body = ``;
-    let headers = {
-
-    };
-    let options = {
-        url: url,
-        headers: headers,
-        body: body,
-    };
-    let result = await magicJS.http.post(options).then(response => {
-        try {
-            const body = response.body;
-            let rspData = null;
-            let retMatch = body.match(/var pageData = ([\s\S]*)/); // 正则表达式匹配
-            if (retMatch) {
-                rspData = JSON.parse(retMatch);
+    if ($request && $request.method != 'OPTIONS') {
+        let cookieStr = $request.headers['Cookie'];
+        if (cookieStr) {
+            let oldCookieStr = magicJS.data.read(PingAnIKEAConstKey.Cookie, null);
+            magicJS.logger.info(`oldCookieStr=${oldCookieStr}`);
+            magicJS.logger.info(`cookieStr=${cookieStr}`);
+            if (compareCookieStr(cookieStr, oldCookieStr) != 0) {
+                magicJS.data.write(PingAnIKEAConstKey.Cookie, cookieStr);
+                magicJS.notification.appendNotifyInfo(`🎉当前Cookie刷新到最新`);
+            } else {
+                magicJS.data.write(PingAnIKEAConstKey.Cookie, cookieStr);
+                magicJS.logger.info(`当前Cookie已经是最新无需更新`);
             }
-            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
-            return rspData;
-        } catch (e) {
-            magicJS.logger.error(e);
         }
-    }).catch(err => {
-        const msg = `请求页面配置数据异常\n${JSON.stringify(err)}`;
-        magicJS.logger.error(msg);
-    });
-    return result;
+    }
+}
+
+function compareCookieStr(cookieStr1, cookieStr2) {
+    if (cookieStr1 == cookieStr2) {
+        return 0;
+    }
+    return -1;
+    // let cookieDict1 = magicJS.parseCookies(cookieStr1);
+    // let cookieDict2 = magicJS.parseCookies(cookieStr2);
+    // let skipKeys = ['NGWhitelist', 'PAEBANK_PARAM', 'PAEBANK_PARAM_N', 'PAEBANK_PARAM_W', 'WEBTRENDS_SESSIONID', 'brcpSessionTicket', 'sdc_PABankParam', 'shuntid'];
+    // let retCode = 0;
+    // for (let key in cookieDict1) {
+    //     if (!skipKeys.includes(key)) {
+    //         if (cookieDict1[key] != void 0 && cookieDict2[key] != void 0 && cookieDict1[key] != cookieDict2[key]) {
+    //             magicJS.logger.info(`${key}`);
+    //             retCode = -1;
+    //             break;
+    //         }
+    //     }
+    // }
+    // return retCode;
+}
+
+function handleHomePage() {
+
 }
 
 function handleCreateTokenId() {
 
 }
 
+function handlePageConfig() {
+    let rspData = getResponsePlainData();
+    if (!rspData) {
+        return;
+    }
+    if (rspData.responseCode != "000000") {
+        return;
+    }
+    let data = rspData.data;
+    if (data.reShow) {
+
+    }
+}
+
 function handlePublicActivityStatus() {
     let rspData = getResponsePlainData();
     if (!rspData) {
@@ -189,6 +264,36 @@ function handleLoginStatus() {
 
 }
 
+
+async function getPageData() {
+    let url = `https://b.pingan.com.cn/kuaizhan/v2/5K2422/20230925/k84123/pageData.js?v=${new Date().getTime()}`;
+    let body = ``;
+    let headers = gCommonHeaders;
+    let options = {
+        url: url,
+        headers: headers,
+        body: body,
+    };
+    let result = await magicJS.http.post(options).then(response => {
+        try {
+            const body = response.body;
+            let rspData = null;
+            let retMatch = body.match(/var pageData = ([\s\S]*)/); // 正则表达式匹配
+            if (retMatch) {
+                rspData = JSON.parse(retMatch);
+            }
+            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
+            return rspData;
+        } catch (e) {
+            magicJS.logger.error(e);
+        }
+    }).catch(err => {
+        const msg = `请求页面配置数据异常\n${JSON.stringify(err)}`;
+        magicJS.logger.error(msg);
+    });
+    return result;
+}
+
 Main().catch((e) => magicJS.logger.log(`-\n ${e}`)).finally(() => magicJS.done());
 
 //---SyncByPyScript---MagicJS3-start