功能概述
该脚本用于自动完成奈雪点单小程序的每日任务,包括:
- 自动检测 Token 有效性
- 自动签到(如果未签到)
- 获取用户基础信息(昵称、手机号)
- 查询当前奈雪币余额
- 记录连续签到天数
- 支持多账号执行,适用于 Node.js 脚本自动化平台(如青龙面板)定时运行。
  
使用方法
- 配置环境变量 NAIXUE_TOKEN,内容为 Bearer Token(去掉 Bearer)。
- 多账号用 &或换行分隔。
- 定时运行脚本。
完整代码实现
以下是完整的脚本代码:
const init = require('init')
const {$, notify, sudojia, checkUpdate} = init('奈雪点单');
const crypto = require('crypto');
const naiXueList = process.env.NAIXUE_TOKEN ? process.env.NAIXUE_TOKEN.split(/[\n&]/) : [];
let message = '';
// 接口地址
const baseUrl = 'https://tm-web.pin-dao.cn'
// openId
const openId = 'AsaSsGzbziPlZwfiXM';
!(async () => {
    await checkUpdate($.name, naiXueList);
    for (let i = 0; i < naiXueList.length; i++) {
        const index = i + 1;
        $.token = naiXueList[i];
        console.log(`\n*****第[${index}]个${$.name}账号*****`);
        const isLogin = await baseUserInfo();
        if (!isLogin) {
            console.error(`Token 已失效`);
            await notify.sendNotify(`【Token失效通知】`, `${$.name}账号[${index}] Token 已失效,请重新登录获取 Token\n\n`);
            continue;
        }
        message += `📣====${$.name}账号[${index}]====📣\n`;
        message += `${$.nickName}(${$.mobile})\n`;
        await $.wait(sudojia.getRandomWait(800, 1200));
        await main();
        await $.wait(sudojia.getRandomWait(2000, 2500));
    }
    if (message) {
        await notify.sendNotify(`【${$.name}】`, `${message}`);
    }
})().catch((e) => $.logErr(e)).finally(() => $.done());
// ... existing code ...
功能说明
方法列表
| 方法名 | 作用描述 | 
|---|---|
| baseUserInfo() | 校验当前用户 Token 是否有效,获取用户昵称、手机号等基础信息 | 
| queryAndHandleSignIn() | 查询当前是否已签到,未签到则调用 performSignIn()执行签到 | 
| performSignIn(nowDate) | 执行当天的签到操作(POST 提交签到日期) | 
| queryUserCoin() | 查询用户当前奈雪币余额与连续签到天数 | 
| sendRequest(apiOptions) | 所有接口请求的封装方法,自动附带签名和通用参数 | 
| getBody() | 生成请求签名和结构,包括 HMAC-SHA1 签名逻辑和时间戳 | 
| randomString() | 生成用于签名的 nonce 随机字符串(默认6位) | 
| formatDate(date) | 格式化日期为 YYYY-MM-DD 格式,用于签到接口参数 | 
关键变量
| 变量名 | 说明 | 
|---|---|
| NAIXUE_TOKEN | 环境变量,内容是 Bearer Token(去掉 Bearer) | 
| $.token | 当前用户的 token,用于 Authorization | 
| $.signCount | 连续签到的天数 | 
| $.nickName | 当前用户昵称 | 
| $.mobile | 当前用户手机号 | 
| openId | 固定写死的 openId,签名计算需要 | 
执行流程图
以下是脚本的主要执行流程(Mermaid 语法):
注意事项
本文部分仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性、准确性、完整性和有效性,请根据情况自行判断。















![[Windows] 游戏常用运行库- Game Runtime Libraries Package(6.2.25.0409)](https://i-blog.csdnimg.cn/img_convert/55ca519964b01db8e0d3b2a1e7961c42.webp?x-oss-process=image/format,png)



