Files
qinglong/脚本库/web版/抓包/水费易签到/2025-04-28_sudojia_shuifei_8501c967.js
2026-05-24 05:33:05 +00:00

138 lines
4.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/public/sudojia_shuifei.js
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/public/sudojia_shuifei.js
// # Repo: sudojia/AutoTaskScript
// # Path: src/public/sudojia_shuifei.js
// # UploadedAt: 2025-04-28T19:26:13+08:00
// # SHA256: 8501c96787ed793dd954d78122f5c6f51fee9821b4900311426fc8d0d3719cb2
// # Category: web版/抓包
// # Evidence: web/H5关键词 + cookie/token/header
//
/**
* 微信公众号:水费易
*
* 抓包 Hosthttps://m.ipaiyun.cn 获取请求头 Cookie 的值和请求 Body 参数 memberId用 # 分割
* export SHUI_FEI_COOKIE = 'ASP.NET_SessionId=xxxxxx; IPAI_UV=xxxx; temp_clause=1#123456'
* 多账号用 & 或换行
*
* @author Telegram@sudojia
* @site https://blog.imzjw.cn
* @date 2024/07/31
*
* const $ = new Env('水费易签到')
* cron: 3 9 * * *
*/
const initScript = require('../utils/initScript')
const {$, notify, sudojia, checkUpdate} = initScript('水费易签到');
const shuiFeiList = process.env.SHUI_FEI_COOKIE ? process.env.SHUI_FEI_COOKIE.split(/[\n&]/) : [];
let message = '';
// 接口地址
const baseUrl = 'https://m.ipaiyun.cn'
// 请求头
const headers = {
'Host': 'm.ipaiyun.cn',
'User-Agent': sudojia.getRandomUserAgent('PC'),
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': '*/*',
'Origin': 'https://m.ipaiyun.cn',
'Referer': 'https://m.ipaiyun.cn/Ipai/Home/Index?code=031sLtFa11eBTH0d0uFa1NqtY53sLtFQ&state=wxbe5b7a2bc0467240',
'Accept-Encoding': 'gzip, deflate, br',
};
!(async () => {
await checkUpdate($.name, shuiFeiList);
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
for (let i = 0; i < shuiFeiList.length; i++) {
const index = i + 1;
const [cookie, mId] = shuiFeiList[i].split('#');
headers.Cookie = cookie || '';
$.memberId = mId || '';
console.log(`\n*****第[${index}]个${$.name}账号*****`);
message += `📣====${$.name}账号[${index}]====📣\n`;
await main();
await $.wait(sudojia.getRandomWait(2000, 2500));
}
if (message) {
await notify.sendNotify(`${$.name}`, `${message}`);
}
})().catch((e) => $.logErr(e)).finally(() => $.done());
async function main() {
await getUserInfo();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getPoints();
}
/**
* 获取用户信息
*
* @return {Promise<void>}
*/
async function getUserInfo() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/PersonalCenter/PersonalCenter/GetShopMemberDetail`, 'post', headers, `memberId=${$.memberId}`);
if (0 !== data.code) {
console.error(data.message);
return;
}
// 昵称
const nickName = data.resultJson.userMember.nickName;
// 手机号
const phone = data.resultJson.userMember.mobilePhone;
// 剩余签到次数
const signNum = data.resultJson.signNum;
console.log(`${nickName}(${phone})`);
message += `${nickName}(${phone})\n`;
await $.wait(sudojia.getRandomWait(500, 1200));
if (0 === signNum) {
console.log('今日已签到');
message += '今日已签到\n';
return;
}
await $.wait(sudojia.getRandomWait(2000, 2500));
await sign();
} catch (e) {
console.error(`获取用户信息时发生异常:${e}`);
}
}
/**
* 签到
*
* @return {Promise<void>}
*/
async function sign() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/PersonalCenter/PersonalCenter/ShopMemberSign`, 'post', headers, `memberId=${$.memberId}`);
if (0 !== data.code) {
console.error(data.message);
return;
}
console.log(`签到成功,已连续签到${data.resultJson.signdays}`);
message += `签到成功,已连续签到${data.resultJson.signdays}\n`;
} catch (e) {
console.error(`签到时发生异常:${e}`);
}
}
/**
* 积分查询
*
* @return {Promise<void>}
*/
async function getPoints() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/PersonalCenter/PersonalCenter/GetShopMemberDetail`, 'post', headers, `memberId=${$.memberId}`);
if (0 !== data.code) {
console.error(data.message);
return;
}
// 积分
const points = data.resultJson.meberinfo.totalIntegral;
console.log(`当前积分:${points}`);
message += `当前积分:${points}\n\n`;
} catch (e) {
console.error(`获取积分时发生异常:${e}`);
}
}