shawenguan 1 yıl önce
ebeveyn
işleme
34e4c23a4b

+ 8 - 0
BoxJsSub/hbcpre.json

@@ -68,6 +68,14 @@
                     "desc": "默认关闭"
                 },
                 {
+                    "id": "HbcpreBrowserOpenUrl",
+                    "name": "代理浏览器地址URL",
+                    "val": "http://127.0.0.1:5000/proxy",
+                    "type": "text",
+                    "placeholder": "",
+                    "desc": "代理浏览器地址URL"
+                },
+                {
                     "id": "HbcpreUserToken",
                     "name": "用户Token",
                     "val": "",

+ 1 - 12
Scripts/hbcpre/hbcpreComposite.js

@@ -652,18 +652,7 @@ async function hbRequest(config, data) {
             }
             magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
             if (rspData) {
-                if (rspData.hasOwnProperty("errcode")) {
-                    if ([1001, 1002, 1003, 1005, 1004].indexOf(rspData.errcode) > -1) {
-                        return null;
-                    } else {
-                        return {
-                            code: -1,
-                            message: "Response Exception"
-                        };
-                    }
-                } else {
-                    return rspData;
-                }
+                return rspData;
             } else {
                 return {
                     code: -1,

+ 1 - 12
Scripts/hbcpre/hbcpreExchange.js

@@ -652,18 +652,7 @@ async function hbRequest(config, data) {
             }
             magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
             if (rspData) {
-                if (rspData.hasOwnProperty("errcode")) {
-                    if ([1001, 1002, 1003, 1005, 1004].indexOf(rspData.errcode) > -1) {
-                        return null;
-                    } else {
-                        return {
-                            code: -1,
-                            message: "Response Exception"
-                        };
-                    }
-                } else {
-                    return rspData;
-                }
+                return rspData;
             } else {
                 return {
                     code: -1,

+ 1 - 12
Scripts/hbcpre/hbcpreGrab.js

@@ -756,18 +756,7 @@ async function hbRequest(config, data) {
             }
             magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
             if (rspData) {
-                if (rspData.hasOwnProperty("errcode")) {
-                    if ([1001, 1002, 1003, 1005, 1004].indexOf(rspData.errcode) > -1) {
-                        return null;
-                    } else {
-                        return {
-                            code: -1,
-                            message: "Response Exception"
-                        };
-                    }
-                } else {
-                    return rspData;
-                }
+                return rspData;
             } else {
                 return {
                     code: -1,

+ 2 - 12
Scripts/hbcpre/hbcpreHelper.js

@@ -27,6 +27,7 @@ const HbcpreConstKey = {
     myOwnSeriesCntFakeData: 'HbcpreMyOwnSeriesCntFakeData', // 资产的伪装数据
     myOwnSeriesListDict: 'HbcpreMyOwnSeriesList',
     myOwnSeriesDetail: 'HbcpreMyOwnSeriesDetail',
+    browserProxyUrl: 'HbcpreBrowserOpenUrl',
 
     // 下单相关
     marketSeriesDataGrabEnabled: 'HbcpreOrderItemDataGrabEnabled',
@@ -1316,18 +1317,7 @@ async function hbRequest(config, data) {
             }
             magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
             if (rspData) {
-                if (rspData.hasOwnProperty("errcode")) {
-                    if ([1001, 1002, 1003, 1005, 1004].indexOf(rspData.errcode) > -1) {
-                        return null;
-                    } else {
-                        return {
-                            code: -1,
-                            message: "Response Exception"
-                        };
-                    }
-                } else {
-                    return rspData;
-                }
+                return rspData;
             } else {
                 return {
                     code: -1,

+ 58 - 10
Scripts/hbcpre/hbcpreOrder.js

@@ -18,6 +18,7 @@ const HbcpreConstKey = {
     myOwnSeriesCntFakeData: 'HbcpreMyOwnSeriesCntFakeData', // 资产的伪装数据
     myOwnSeriesListDict: 'HbcpreMyOwnSeriesList',
     myOwnSeriesDetail: 'HbcpreMyOwnSeriesDetail',
+    browserProxyUrl: 'HbcpreBrowserOpenUrl',
 
     // 下单相关的
     marketSeriesDataGrabEnabled: 'HbcpreOrderItemDataGrabEnabled',
@@ -171,13 +172,18 @@ async function doQuickOrder(iData, willPrice, priceFloatInterval){
                 }
                 if (payRet) {
                     let paymentInfo = encodeURI(payRet.paymentInfo);
-                    let bOpenRet = await browserOpenUrl(paymentInfo);
-                    let queryData = magicJS.parseQueryStr(paymentInfo);
-                    let cashierInit1 = await yeepayWapRequest(queryData.token, queryData.merchantNo, 'BDbiAXHCpS5A*VlA7eDbTg%3D%3D');
-                    let cashierInit2 = await yeepayNewWap(queryData.token);
-                    let paySuccFlag = await doYeepay(queryData.token, parseFloat(iData.pay_price) + priceFloatInterval);
-                    if (paySuccFlag) {
-                        magicJS.notification.post(scriptName, "", `🎉产品【${iData.seriesName}】快捷下单成功,并支付成功!`);
+                    let browserRet = await openUrlByRemoteBrowser(paymentInfo);
+                    // let queryData = magicJS.parseQueryStr(paymentInfo);
+                    // let cashierInit1 = await yeepayWapRequest(queryData.token, queryData.merchantNo, 'BDbiAXHCpS5A*VlA7eDbTg%3D%3D');
+                        // let cashierInit2 = await yeepayNewWap(queryData.token);
+                    if(browserRet && browserRet.code == 200){
+                        let queryData = magicJS.parseQueryStr(browserRet.url);
+                        let paySuccFlag = await doYeepay(queryData.token, parseFloat(iData.pay_price) + priceFloatInterval);
+                        if (paySuccFlag) {
+                            magicJS.notification.post(scriptName, "", `🎉产品【${iData.seriesName}】快捷下单成功,并支付成功!`);
+                        } else {
+                            magicJS.notification.post(scriptName, "", `🎉产品【${iData.seriesName}】快捷下单成功,需前往支付!`, paymentInfo);
+                        }
                     } else {
                         magicJS.notification.post(scriptName, "", `🎉产品【${iData.seriesName}】快捷下单成功,需前往支付!`, paymentInfo);
                     }
@@ -257,7 +263,7 @@ async function doNormalOrder(iData, willPrice, priceFloatInterval){
                     }
                     if (payRet) {
                         let paymentInfo = encodeURI(payRet.paymentInfo);
-                        let bOpenRet = await browserOpenUrl(paymentInfo);
+                        let bOpenRet = await openUrlByRemoteBrowser(paymentInfo);
                         let queryData = magicJS.parseQueryStr(paymentInfo);
                         let cashierInit1 = await yeepayWapRequest(queryData.token, queryData.merchantNo, 'BDbiAXHCpS5A*VlA7eDbTg%3D%3D');
                         let cashierInit2 = await yeepayNewWap(queryData.token);
@@ -467,7 +473,49 @@ async function checkAuthority(){
     });
 }
 
-async function browserOpenUrl(url, headers) {
+async function openUrlByRemoteBrowser(url) {
+    let headers = = {
+        'Sec-Fetch-Dest': `empty`,
+        'Connection': `keep-alive`,
+        'Accept-Encoding': `gzip, deflate, br`,
+        'Content-Type': `application/json;charset=UTF-8`,
+        'Sec-Fetch-Site': `same-origin`,
+        'Origin': `https://cash.yeepay.com`,
+        'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1`,
+        'Sec-Fetch-Mode': `cors`,
+        'Cookie': `aliyungf_tc=deb5a0bf09b2b2914456330284da78f4dd6625813acc42b992eb59069c342eed`,
+        'Host': `cash.yeepay.com`,
+        'Referer': `https://cash.yeepay.com/newwap/mobile-cashier/index.html`,
+        'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
+        'Accept': `application/json, text/plain, */*`
+    };
+    let data = {
+        url: url,
+        headers: headers,
+    };
+    let proxyUrl = magicJS.data.read(HbcpreConstKey.browserProxyUrl, 'http://127.0.0.1:5000/proxy');
+    let options = {
+        url: proxyUrl,
+        headers: headers,
+        body: JSON.stringify(data),
+    };
+    let result = await magicJS.http.post(options).then(response => {
+        try {
+            magicJS.logger.info(JSON.stringify(response));
+            const body = response.body;
+            magicJS.logger.info(body);
+            return body;
+        } catch (e) {
+            magicJS.logger.error(e);
+        }
+    }).catch(err => {
+        const msg = `请求代理浏览器异常\n${JSON.stringify(err)}`;
+        magicJS.logger.error(msg);
+    });
+    return result;
+}
+
+async function getHtmlContent(url, headers) {
     let options = {
         url: `${url}`,
         headers: headers,
@@ -483,7 +531,7 @@ async function browserOpenUrl(url, headers) {
             magicJS.logger.error(e);
         }
     }).catch(err => {
-        const msg = `打开网页异常\n${JSON.stringify(err)}`;
+        const msg = `获取网页异常\n${JSON.stringify(err)}`;
         magicJS.logger.error(msg);
     });
     return result;