let mode = __dirname.includes('magic') const {Env} = mode ? require('../magic') : require('./magic') const $ = new Env('M入会有礼'); $.openCardArgv = decodeURIComponent(process.argv.splice(2)?.[0] || process.env.M_OPEN_CARD_ARGV); if (mode) { $.openCardArgv = '650767_655224' $.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?shopId=123' $.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?venderId=123' $.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?shopId=123&venderId=123' } //强制开卡 1关闭 2开启 let forceOpen = parseInt(process.env.M_OPEN_CARD_FORCE || "1") $.version = "v1.0.0"; console.log("当前版本:" + $.version + ",依赖版本:" + $.superVersion); $.config = async function () { if ($.openCardArgv.startsWith("http")) { $.shopId = this.getQueryString($.openCardArgv, "shopId") || ""; $.venderId = this.getQueryString($.openCardArgv, "venderId") || ""; let { shopId: II1l1l, venderId: i1Ii11, shopName: llI1ii } = await $.getShopBaseInfo(); $.shopId = II1l1l; $.venderId = i1Ii11; $.shopName = llI1ii; } else { let IllIlIli = $.openCardArgv.split("_"); $.shopId = IllIlIli?.[0]; $.venderId = IllIlIli?.[1]; } $.activityUrl = "https://shopmember.m.jd.com/shopcard/?shopId=" + $.shopId + "&venderId=" + $.venderId; }; $.logic = async function () { if (!$.superVersion) throw new Error("请更新脚本"); if (!$.shopId || !$.venderId) { $.log("无效的参数" + $.openCardArgv); $.expire = true; return; } $.UA = $.ua(); let IIl1I11i = await $.openCardInfo(); if (IIl1I11i?.["busiCode"] !== "0") { $.log(JSON.stringify(IIl1I11i)); return; } $.venderCardName = IIl1I11i.result?.["shopMemberCardInfo"]?.["venderCardName"]; let i1lII1l = IIl1I11i.result?.["interestsRuleList"] || [], Ii11IIIi = i1lII1l.filter(ii11il1i => ii11il1i?.["prizeType"] === 4 || ii11il1i?.["prizeType"] === 14 || ii11il1i?.["prizeName"] === "京豆" || ii11il1i?.["prizeName"] === "红包")?.[0] || ""; $.beanCount = 0; let llII1l1 = IIl1I11i.result.userInfo.openCardStatus === 1; if (llII1l1) { $.putMsg("已开过卡"); let IIllIlIi = await getFansFuseMemberDetail(); if (IIllIlIi.code === "0") { if (IIllIlIi.data[0]?.["newGiftList"]) { let i1lIII1I = IIllIlIi.data[0]?.["newGiftList"]?.[0]; if (!i1lIII1I) return; $.activityId = i1lIII1I.activityId; $.activityType = i1lIII1I.activityType; if ($.activityId && $.activityType && i1lIII1I.status * 1 !== 2) { let il1ll11l = await collectGift(); if (il1ll11l.busiCode === "200") for (let IiiilIll of IIllIlIi.data[0]?.["newGiftList"]) { $.putMsg("" + IiiilIll.discount + IiiilIll.prizeTypeName); } else $.putMsg("" + il1ll11l.message); } } } return; } if (llII1l1) { $.putMsg("已开过卡"); return; } if (forceOpen === 2) { $.putMsg("强制开卡"); await $.openCard(); return; } $.beanCount = Ii11IIIi?.["discountString"] * 1 || 0; $.activityId = Ii11IIIi?.["interestsInfo"]?.["activityId"] || ""; let il1lili = await $.openCard($.venderId, 208, $.activityId); let lili111i = il1lili.result?.["giftInfo"]?.["giftList"]; if (il1lili.code === 0 && lili111i) { for (let illiI1l of lili111i) { $.putMsg("" + illiI1l.discountString + illiI1l.prizeName); } return; } else { let IIllIlIi = await getFansFuseMemberDetail(); if (IIllIlIi.code === "0") { if (IIllIlIi.data[0]?.["newGiftList"]) { let i1lIII1I = IIllIlIi.data[0]?.["newGiftList"]?.[0]; if (!i1lIII1I) return; $.activityId = i1lIII1I.activityId; $.activityType = i1lIII1I.activityType; if ($.activityId && $.activityType && i1lIII1I.status * 1 !== 2) { let il1ll11l = await collectGift(); if (il1ll11l.busiCode === "200") for (let IiiilIll of IIllIlIi.data[0]?.["newGiftList"]) { $.putMsg("" + IiiilIll.discount + IiiilIll.prizeTypeName); } else $.putMsg("" + il1ll11l.message); } } } return; } }; async function getFansFuseMemberDetail() { let IlillllI = { "venderId": $.venderId, "shopId": $.shopId, "channel":"406", "queryVersion": "12.1.6" }; let li1Il1ll = { "Connection": "keep-alive", "Accept-Encoding": "gzip, deflate, br", "Content-Type": "application/x-www-form-urlencoded", "Host": "api.m.jd.com", "Referer": "https://shopmember.m.jd.com/", "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9", "Accept": "*/*", "Cookie": $.cookie, "User-Agent": "JD4iPhone/167841 (iPhone; iOS; Scale/3.00)" }; let il1IlI1I = `https://api.m.jd.com/client.action?functionId=getFansFuseMemberDetail&body=${encodeURIComponent(JSON.stringify(IlillllI))}&appid=shopmember_m_jd_com&clientVersion=11.0.0&client=wh5&uuid=${$.UUID}&h5st=undefined`, { status: lII1IIi1, data: l1IIIi1 } = await $.request(il1IlI1I, li1Il1ll); return l1IIIi1; } async function collectGift() { let ilI11i1I = { "venderId": $.venderId, "shopId": $.shopId, "activityType": $.activityType, "activityId": $.activityId }; let l1Ii1lI1 = { "Connection": "keep-alive", "Accept-Encoding": "gzip, deflate, br", "Content-Type": "application/x-www-form-urlencoded", "Host": "api.m.jd.com", "Referer": "https://shopmember.m.jd.com/", "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9", "Accept": "*/*", "Cookie": $.cookie, "User-Agent": "JD4iPhone/167841 (iPhone; iOS; Scale/3.00)" }; let IiIiIill = `https://api.m.jd.com/client.action?functionId=collectGift&body=${encodeURIComponent(JSON.stringify(ilI11i1I))}&appid=shopmember_m_jd_com&clientVersion=11.0.0&client=wh5&uuid=${$.UUID}&h5st=undefined`, { status: l1iII1lI, data: Il1liIli } = await $.request(IiIiIill, l1Ii1lI1); return Il1liIli; } $.after = async function () { $.venderCardName && $.msg.push("【" + $.venderCardName + "】入会送(" + $.beanCount + "京豆)"); $.msg.push("export M_OPEN_CARD_ARGV=\"" + $.openCardArgv + "\""); }; $.run().catch(reason => $.log(reason))