B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 1|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý

[¸´ÖÆÁ´½Ó]

1176

Ö÷Ìâ

1181

Ìû×Ó

7981

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7981
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷

ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý
ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý B2BÍøÂçÈí¼þ

ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý B2BÍøÂçÈí¼þ

ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý B2BÍøÂçÈí¼þ





  1. // ËÙʶ±ðÑéÖ¤Âëʶ±ðƽ̨ AIWROK ½ÓÈëʾÀý
  2. // APIÎĵµ: https://www.sushibie.com/demo.html

  3. // È«¾ÖÅäÖÃ
  4. var G = {
  5.     running: true,
  6.     token: "b5KL6hTyLfzDk84413CZZHE00pBLES2zxbE9G8",
  7.     apiUrl: "https://api.sushibie.com/api/YmServer/customApi",
  8.     userInfoUrl: "https://api.sushibie.com/api/YmServer/getUserInfoApi",
  9.     refundUrl: "https://api.sushibie.com/api/YmServer/refundApi",
  10.     captchaType: "2001" // ÑéÖ¤ÂëÀàÐÍID£¬¸ù¾Ýʵ¼ÊÐèÇóÐÞ¸Ä
  11. };

  12. // µ¼Èë±ØÒªµÄ Java Àà
  13. importClass(java.net.HttpURLConnection);
  14. importClass(java.net.URL);
  15. importClass(java.io.BufferedReader);
  16. importClass(java.io.InputStreamReader);
  17. importClass(java.io.OutputStream);
  18. importClass(java.lang.StringBuilder);
  19. importClass(android.util.Base64);
  20. importClass(java.io.FileInputStream);
  21. importClass(java.io.File);

  22. /**
  23. * ½«Í¼Æ¬Îļþת»»Îª Base64 ×Ö·û´®
  24. * @param {string} imagePath - ͼƬÎļþµÄ¾ø¶Ô·¾¶
  25. * @returns {string} Base64 ±àÂëµÄ×Ö·û´®
  26. */
  27. function imageToBase64(imagePath) {
  28.     try {
  29.         var file = new File(imagePath);
  30.         if (!file.exists()) {
  31.             printl("[ERROR] ͼƬÎļþ²»´æÔÚ: " + imagePath);
  32.             return null;
  33.         }
  34.         
  35.         var fis = new FileInputStream(file);
  36.         var bytes = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, file.length());
  37.         fis.read(bytes);
  38.         fis.close();
  39.         
  40.         var base64 = Base64.encodeToString(bytes, Base64.NO_WRAP);
  41.         printl("[INFO] ͼƬתBase64³É¹¦£¬´óС: " + base64.length() + " ×Ö·û");
  42.         return base64;
  43.     } catch (e) {
  44.         printl("[ERROR] ͼƬתBase64ʧ°Ü: " + e.message);
  45.         return null;
  46.     }
  47. }

  48. /**
  49. * ÊÖ¶¯¹¹½¨ JSON ×Ö·û´®£¨Rhino »·¾³Ï JSON.stringify ¿ÉÄܲ»¿ÉÓã©
  50. * @param {object} obj - Ҫת»»µÄ¶ÔÏó
  51. * @returns {string} JSON ×Ö·û´®
  52. */
  53. function toJson(obj) {
  54.     var parts = [];
  55.     for (var key in obj) {
  56.         if (obj.hasOwnProperty(key)) {
  57.             var val = obj[key];
  58.             // ͳһת³É JS ×Ö·û´®£¨¼æÈÝ Java String ¶ÔÏó£©
  59.             var strVal = "" + val;
  60.             if (typeof val === "string" || val instanceof java.lang.String || typeof val === "object" && val.getClass) {
  61.                 // תÒåÌØÊâ×Ö·û
  62.                 strVal = strVal.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");
  63.                 parts.push('"' + key + '":"' + strVal + '"');
  64.             } else {
  65.                 parts.push('"' + key + '":' + strVal);
  66.             }
  67.         }
  68.     }
  69.     return "{" + parts.join(",") + "}";
  70. }

  71. /**
  72. * ·¢ËÍ HTTP POST ÇëÇó
  73. * @param {string} url - ÇëÇóµØÖ·
  74. * @param {object} postData - POST Êý¾Ý¶ÔÏó
  75. * @returns {object} ÏìÓ¦½á¹û¶ÔÏó
  76. */
  77. function httpPost(url, postData) {
  78.     try {
  79.         var urlObj = new URL(url);
  80.         var conn = urlObj.openConnection();
  81.         conn.setRequestMethod("POST");
  82.         conn.setDoOutput(true);
  83.         conn.setDoInput(true);
  84.         conn.setUseCaches(false);
  85.         conn.setConnectTimeout(10000);
  86.         conn.setReadTimeout(30000);
  87.         conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
  88.         // ²»ÒªÏÔʽµ÷Óà connect()£¬Èà getOutputStream ×Ô¶¯Á¬½Ó

  89.         // ÊÖ¶¯¹¹½¨ JSON ×Ö·û´®
  90.         var jsonStr = toJson(postData);
  91.         var logStr = jsonStr;
  92.         if (logStr.length > 200) {
  93.             logStr = logStr.substring(0, 200) + "...";
  94.         }
  95.         printl("[DEBUG] ÇëÇóÊý¾Ý: " + logStr);

  96.         // ·¢ËÍÇëÇóÊý¾Ý
  97.         var bodyBytes = new java.lang.String(jsonStr).getBytes("UTF-8");
  98.         conn.setRequestProperty("Content-Length", "" + bodyBytes.length);
  99.         var os = conn.getOutputStream();
  100.         if (os == null) {
  101.             printl("[ERROR] ÎÞ·¨»ñÈ¡Êä³öÁ÷");
  102.             return null;
  103.         }
  104.         os.write(bodyBytes);
  105.         os.flush();
  106.         os.close();

  107.         // ¶ÁÈ¡ÏìÓ¦
  108.         var responseCode = conn.getResponseCode();
  109.         printl("[DEBUG] ÏìӦ״̬Âë: " + responseCode);

  110.         var is;
  111.         if (responseCode >= 200 && responseCode < 300) {
  112.             is = conn.getInputStream();
  113.         } else {
  114.             is = conn.getErrorStream();
  115.         }

  116.         if (is == null) {
  117.             printl("[ERROR] ÎÞ·¨»ñÈ¡ÊäÈëÁ÷");
  118.             conn.disconnect();
  119.             return null;
  120.         }

  121.         var reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  122.         var sb = new StringBuilder();
  123.         var line;
  124.         while ((line = reader.readLine()) != null) {
  125.             sb.append(line);
  126.         }
  127.         reader.close();
  128.         conn.disconnect();

  129.         var responseText = sb.toString();
  130.         printl("[DEBUG] ÏìÓ¦ÄÚÈÝ: " + responseText);

  131.         // ÊÖ¶¯½âÎö JSON ÏìÓ¦
  132.         return parseJson(responseText);
  133.     } catch (e) {
  134.         printl("[ERROR] HTTPÇëÇóʧ°Ü: " + e.message);
  135.         return null;
  136.     }
  137. }

  138. /**
  139. * ¼òµ¥ JSON ½âÎö£¨Rhino »·¾³Ï¿ÉÄÜûÓÐÔ­Éú JSON.parse£©
  140. * ʹÓà org.json.JSONObject ½âÎö
  141. */
  142. function parseJson(jsonStr) {
  143.     try {
  144.         var jsonObj = new org.json.JSONObject(jsonStr);
  145.         return {
  146.             code: jsonObj.optInt("code", -1),
  147.             msg: jsonObj.optString("msg", ""),
  148.             data: parseJsonData(jsonObj)
  149.         };
  150.     } catch (e) {
  151.         printl("[ERROR] JSON½âÎöʧ°Ü: " + e.message);
  152.         return null;
  153.     }
  154. }

  155. /**
  156. * ½âÎö data ×Ö¶Î
  157. */
  158. function parseJsonData(jsonObj) {
  159.     try {
  160.         if (jsonObj.isNull("data")) return null;
  161.         var dataObj = jsonObj.optJSONObject("data");
  162.         if (dataObj != null) {
  163.             return {
  164.                 code: dataObj.optInt("code", -1),
  165.                 data: dataObj.optString("data", ""),
  166.                 time: dataObj.optString("time", ""),
  167.                 score: dataObj.optString("score", ""),
  168.                 unique_code: dataObj.optString("unique_code", "")
  169.             };
  170.         }
  171.         return null;
  172.     } catch (e) {
  173.         return null;
  174.     }
  175. }

  176. /**
  177. * ʶ±ðÑéÖ¤Âë
  178. * @param {string} imagePath - ͼƬÎļþ·¾¶
  179. * @param {string} type - ÑéÖ¤ÂëÀàÐÍID
  180. * @returns {object} ʶ±ð½á¹û {success: boolean, data: string, time: string, msg: string}
  181. */
  182. function recognizeCaptcha(imagePath, type) {
  183.     printl("[INFO] ¿ªÊ¼Ê¶±ðÑéÖ¤Â룬ÀàÐÍ: " + type);
  184.    
  185.     // 1. ͼƬת Base64
  186.     var imageBase64 = imageToBase64(imagePath);
  187.     if (!imageBase64) {
  188.         return { success: false, msg: "ͼƬתBase64ʧ°Ü" };
  189.     }
  190.    
  191.     // 2. ¹¹½¨ÇëÇó²ÎÊý
  192.     var postData = {
  193.         token: G.token,
  194.         type: type,
  195.         image: imageBase64
  196.     };
  197.    
  198.     // 3. ·¢ËÍÇëÇó
  199.     printl("[INFO] ÕýÔÚµ÷ÓÃÊÙ˾ÑéÖ¤ÂëAPI...");
  200.     var response = httpPost(G.apiUrl, postData);
  201.    
  202.     if (!response) {
  203.         return { success: false, msg: "APIÇëÇóʧ°Ü" };
  204.     }
  205.    
  206.     // 4. ½âÎöÏìÓ¦
  207.     var code = response.code;
  208.     var msg = response.msg || "δ֪´íÎó";
  209.    
  210.     printl("[INFO] APIÏìÓ¦Âë: " + code + ", ÏûÏ¢: " + msg);
  211.    
  212.     if (code === 10000) {
  213.         // ʶ±ð³É¹¦
  214.         var result = response.data.data;
  215.         var time = response.data.time;
  216.         printl("[SUCCESS] ʶ±ð³É¹¦£¡½á¹û: " + result + ", ºÄʱ: " + time + "Ãë");
  217.         return { success: true, data: result, time: time, msg: msg };
  218.     } else if (code === 10009) {
  219.         // ½á¹û×¼±¸ÖÐ
  220.         printl("[WARN] ½á¹û×¼±¸ÖУ¬ÇëÉÔºóÖØÊÔ");
  221.         return { success: false, msg: "½á¹û×¼±¸ÖÐ" };
  222.     } else {
  223.         // ÆäËû´íÎó
  224.         printl("[ERROR] ʶ±ðʧ°Ü: " + msg);
  225.         return { success: false, msg: msg };
  226.     }
  227. }

  228. /**
  229. * »ñÈ¡ÕË»§Óà¶î
  230. * @returns {object} {success: boolean, score: number, msg: string}
  231. */
  232. function getBalance() {
  233.     printl("[INFO] ²éѯÕË»§Óà¶î...");
  234.    
  235.     var postData = {
  236.         token: G.token,
  237.         type: "score"
  238.     };
  239.    
  240.     var response = httpPost(G.userInfoUrl, postData);
  241.    
  242.     if (!response) {
  243.         return { success: false, msg: "²éѯʧ°Ü" };
  244.     }
  245.    
  246.     if (response.code === 10001) {
  247.         var score = response.data.score;
  248.         printl("[INFO] ÕË»§Óà¶î: " + score + " »ý·Ö");
  249.         return { success: true, score: parseFloat(score), msg: "²éѯ³É¹¦" };
  250.     } else {
  251.         printl("[ERROR] ²éѯʧ°Ü: " + response.msg);
  252.         return { success: false, msg: response.msg };
  253.     }
  254. }

  255. /**
  256. * ±¨´í·µ·Ö
  257. * @param {string} uniqueCode - ´òÂë·µ»ØµÄ uniqueCode
  258. * @returns {object} {success: boolean, msg: string}
  259. */
  260. function reportError(uniqueCode) {
  261.     printl("[INFO] Ìá½»±¨´í£¬uniqueCode: " + uniqueCode);
  262.    
  263.     var postData = {
  264.         token: G.token,
  265.         uniqueCode: uniqueCode
  266.     };
  267.    
  268.     var response = httpPost(G.refundUrl, postData);
  269.    
  270.     if (!response) {
  271.         return { success: false, msg: "±¨´íÇëÇóʧ°Ü" };
  272.     }
  273.    
  274.     if (response.code === 200) {
  275.         printl("[SUCCESS] ±¨´í³É¹¦£¬»ý·ÖÒÑÍË»¹");
  276.         return { success: true, msg: "±¨´í³É¹¦" };
  277.     } else {
  278.         printl("[ERROR] ±¨´íʧ°Ü: " + response.msg);
  279.         return { success: false, msg: response.msg };
  280.     }
  281. }

  282. // ============ Ö÷³ÌÐò ============

  283. function main() {
  284.     printl("========================================");
  285.     printl("[INFO] ÊÙ˾ÑéÖ¤Âëʶ±ð AIWROK ½ÓÈëʾÀý");
  286.     printl("========================================");

  287.     // 1. ²éѯÓà¶î
  288.     var balanceResult = getBalance();
  289.     if (balanceResult.success) {
  290.         printl("[INFO] µ±Ç°¿ÉÓûý·Ö: " + balanceResult.score);
  291.     } else {
  292.         printl("[WARN] Óà¶î²éѯʧ°Ü: " + balanceResult.msg);
  293.     }

  294.     // 2. ½ØÍ¼²âÊÔ
  295.     printl("[INFO] ¿ªÊ¼½ØÍ¼²âÊÔ...");

  296.     try {
  297.         // È«ÆÁ½ØÍ¼£¬»ñȡͼƬ¶ÔÏó
  298.         var img = screen.screenShotFull();
  299.         if (!img) {
  300.             printl("[ERROR] ½ØÍ¼Ê§°Ü£¬·µ»ØÎª¿Õ");
  301.             return;
  302.         }
  303.         printl("[INFO] ½ØÍ¼³É¹¦");

  304.         // Ö±½Ó½«Í¼Æ¬×ª base64 ·¢Ë͸ø API
  305.         var imageBase64 = img.toBase64();
  306.         printl("[INFO] ͼƬתBase64³É¹¦£¬´óС: " + imageBase64.length() + " ×Ö·û");

  307.         // 3. Ö´ÐÐʶ±ð
  308.         printl("[INFO] ÑéÖ¤ÂëÀàÐÍ: " + G.captchaType);
  309.         printl("[INFO] ÕýÔÚµ÷ÓÃÊÙ˾ÑéÖ¤ÂëAPI...");

  310.         var postData = {
  311.             token: G.token,
  312.             type: G.captchaType,
  313.             image: imageBase64
  314.         };

  315.         var response = httpPost(G.apiUrl, postData);
  316.         img.recycle();

  317.         if (!response) {
  318.             printl("[ERROR] APIÇëÇóʧ°Ü");
  319.             return;
  320.         }

  321.         var code = response.code;
  322.         var msg = response.msg || "δ֪´íÎó";
  323.         printl("[INFO] APIÏìÓ¦Âë: " + code + ", ÏûÏ¢: " + msg);

  324.         if (code === 10000 && response.data) {
  325.             printl("========================================");
  326.             printl("[SUCCESS] ʶ±ð³É¹¦£¡");
  327.             printl("[INFO] ʶ±ð½á¹û: " + response.data.data);
  328.             printl("[INFO] ʶ±ðºÄʱ: " + response.data.time + " Ãë");
  329.             printl("========================================");
  330.         } else {
  331.             printl("========================================");
  332.             printl("[FAILED] ʶ±ðʧ°Ü");
  333.             printl("[INFO] ʧ°ÜÔ­Òò: " + msg);
  334.             printl("========================================");
  335.         }
  336.     } catch (e) {
  337.         printl("[ERROR] ½ØÍ¼Òì³£: " + e.message);
  338.         printl("[ERROR] Òì³£¶ÑÕ»: " + e.stack);
  339.         return;
  340.     }
  341. }

  342. // Æô¶¯Ö÷³ÌÐò
  343. try {
  344.     main();
  345. } catch (e) {
  346.     printl("[FATAL] ³ÌÐòÖ´ÐÐÒì³£: " + e.message);
  347.     printl("[FATAL] ¶ÑÕ»: " + e.stack);
  348. }

  349. printl("[INFO] ³ÌÐòÖ´ÐÐÍê±Ï");
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-9-15 07:15 , Processed in 0.109830 second(s), 33 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí