爱意满满的作品展示区。
iPocket

[送码] 维护了快一年的会员订阅管理工具 — 口袋订阅,最近大幅优化了一版本

  •  
  •   iPocket · May 26 · 6808 views
    This topic created in 160 days ago, the information mentioned may be changed or developed.
    一个苹果 iOS 原生制作的会员订阅管理工具 —— 口袋订阅,维护了快一年了,总体很稳定了,非常感谢国内外的朋友反馈,特别是一个老外叫 Jimmy ,好像非常喜欢我这款产品,他发现 bug 总是发邮件给我,邮件里有和他对话的几十封邮件了,真的非常感谢,也很开心。
    产品主打简约,可以快速添加会员订阅,快速查找会员订阅,其他功能,订阅 APP 里该有的应该都有。然后可以通过长按别的 APP 分享到 口袋订阅 快速添加,也可以通过搜索 APP/网站 名称来快速添加,其他功能我倒觉得没那么重要,主要看个大概的费用。
    APP 不搜集你的任何数据,这里其实有个缺点,就是你想改善你的产品的时候,没有数据,就会发现无从下手,你根本不知道用户在哪个页面体验不好😂,全靠用户从其他渠道反馈,邮件、小红书等。如有苹果开发者也可以一起交流下这方面的经验。
    App Store 地址: https://apps.apple.com/cn/app/%E5%8F%A3%E8%A2%8B%E8%AE%A2%E9%98%85-%E8%AE%A2%E9%98%85%E7%AE%A1%E7%90%86%E4%B8%8E%E8%B4%A6%E5%8D%95%E6%8F%90%E9%86%92/id6752631319


    留言抽 20 个永久会员,明天收市后按上证指数抽出,因为我发现我送的很多兑换码感觉被机器人秒了
    抽奖程序由 GPT 提供,代码如下
    ```javascript
    (async function lottery() {
    const drawTime = "2026-05-27 18:00:00"; // 开奖时间
    const postUrl = "https://example.com/post/123"; // 帖子链接
    const shIndex = "3123.45"; // 上证指数,建议用字符串,避免小数精度问题
    const replyTotal = 1000; // 回复总数
    const winnerCount = 20; // 抽奖个数

    if (!drawTime || !postUrl || !shIndex) {
    console.error("开奖时间、帖子链接、上证指数不能为空");
    return;
    }

    if (!Number.isSafeInteger(replyTotal) || replyTotal <= 0) {
    console.error("回复总数必须是大于 0 的安全整数");
    return;
    }

    if (!Number.isSafeInteger(winnerCount) || winnerCount <= 0) {
    console.error("抽奖个数必须是大于 0 的安全整数");
    return;
    }

    if (winnerCount > replyTotal) {
    console.error("抽奖个数不能大于回复总数");
    return;
    }

    async function sha256Hex(text) {
    const data = new TextEncoder().encode(text);
    const hashBuffer = await crypto.subtle.digest("SHA-256", data);

    return Array.from(new Uint8Array(hashBuffer))
    .map(b => b.toString(16).padStart(2, "0"))
    .join("");
    }

    function hexToBigInt(hex) {
    return BigInt("0x" + hex);
    }

    async function randomInt(seed, counter, maxExclusive) {
    const max = BigInt(maxExclusive);
    const space = 1n << 256n;
    const limit = space - (space % max);

    while (true) {
    const hash = await sha256Hex(seed + ":" + counter.value);
    counter.value++;

    const num = hexToBigInt(hash);

    // 拒绝采样,避免简单取模产生偏差
    if (num < limit) {
    return Number(num % max);
    }
    }
    }

    async function drawWinners(seed, replyTotal, winnerCount) {
    const winners = [];
    const swapped = new Map();
    const counter = { value: 0 };

    for (let i = 0; i < winnerCount; i++) {
    const remaining = replyTotal - i;
    const r = await randomInt(seed, counter, remaining);

    const selectedIndex = i + r;

    const selectedValue = swapped.has(selectedIndex)
    ? swapped.get(selectedIndex)
    : selectedIndex + 1;

    const currentValue = swapped.has(i)
    ? swapped.get(i)
    : i + 1;

    swapped.set(selectedIndex, currentValue);
    winners.push(selectedValue);
    }

    return winners;
    }

    const rawSeed = [
    `开奖时间=${drawTime}`,
    `帖子链接=${postUrl}`,
    `上证指数=${shIndex}`,
    `回复总数=${replyTotal}`,
    `抽奖个数=${winnerCount}`
    ].join("|");

    const seedHash = await sha256Hex(rawSeed);
    const winners = await drawWinners(seedHash, replyTotal, winnerCount);
    const sortedWinners = [...winners].sort((a, b) => a - b);

    console.log("========== 抽奖结果 ==========");
    console.log("原始种子:");
    console.log(rawSeed);
    console.log("");
    console.log("种子 SHA-256:");
    console.log(seedHash);
    console.log("");
    console.log("中奖楼层:");
    console.log(winners.join(", "));
    console.log("");
    console.log("中奖楼层,升序:");
    console.log(sortedWinners.join(", "));
    console.log("============================");
    })();
    ```
    147 replies  •  2026-06-15 09:55:19 +08:00
    1  2  
    ❮ ❯
    TaoTao
    TaoTao
    May 26 via iPhone
    1
    支持下
    vpromise
    vpromise
    May 26
    2
    前来支持
    xspoco
    xspoco
    May 27
    3
    支持一下
    huoma
    huoma
    May 27 via iPhone
    4
    kk
    samli12
    samli12
    May 27
    5
    支持
    Crazy9527
    Crazy9527
    May 27 via Android
    6
    支持
    azhezzz
    azhezzz
    May 27
    7
    支持
    outofbound
    8
    支持!
    eocp2020
    eocp2020
    May 27
    9
    支持下
    marcoseaver
    10
    支持下!
    believems
    believems
    May 27 via iPhone
    11
    支持
    wesky8201
    wesky8201
    May 27 via iPhone
    12
    支持支持
    imbelike
    imbelike
    May 27
    13
    支持一下
    AceRacer
    AceRacer
    May 27 via Android
    14
    支持一下
    ChanYancy
    ChanYancy
    May 27
    15
    支持支持
    song135711
    16
    支持下
    whiteleopard520
    whiteleopard520
    May 27 via iPhone
    17
    厉害了,支持
    gegeburu
    gegeburu
    May 27 via iPhone
    18
    支持一下
    evilHa
    evilHa
    May 27
    19
    支持一下
    s1eep
    s1eep
    May 27
    20
    支持一下
    Fxshiny
    Fxshiny
    May 27
    21
    NIUDE 看不懂=-=
    Lituby
    Lituby
    May 27 via Android
    22
    支持一下
    cymcc
    cymcc
    May 27
    23
    支持支持
    wl62613
    wl62613
    May 27
    24
    支持一下
    bizwenbo
    bizwenbo
    May 27
    25
    支持
    yunmeng
    yunmeng
    May 27
    26
    分母
    Lituby
    Lituby
    May 27
    27
    支持
    ponng
    ponng
    May 27 via iPhone
    28
    分母一下
    eod
    eod
    May 27
    29
    支持
    easymbol
    easymbol
    May 27
    30
    支持一下,当个分母
    Shum1n
    Shum1n
    May 27
    31
    众在参与
    ganzhen
    ganzhen
    May 27 via iPhone
    32
    参与一下
    sktline
    sktline
    May 27
    33
    支持一下
    passtest
    passtest
    May 27
    34
    支持一下
    Emyorii
    Emyorii
    May 27
    35
    支持一下
    roma
    roma
    May 27
    36
    +1024
    54xavier
    54xavier
    May 27
    37
    我是自己写接口加维护数据 + 快捷指令 + bark 每日推送提醒,有点儿累了,如果中了试试这个 app 吧
    fengtalk
    fengtalk
    May 27
    38
    祝楼主大卖!
    lc4t
    lc4t
    May 27
    39
    支持一下
    kongzz
    kongzz
    May 27
    40
    支持一下
    Jokerboozp
    41
    支持一下
    aka404
    aka404
    May 27 via Android
    42
    支持一下
    windowlife
    43
    支持一下
    htd
    htd
    May 27
    44
    支持支持
    abcde51111
    45
    支持
    chocolatesir
    46
    支持一下
    LightChan
    LightChan
    May 27
    47
    支持
    lepig
    lepig
    May 27
    48
    实用的的小工具
    pljhonglu
    pljhonglu
    May 27
    49
    支持一下
    Rex180123
    Rex180123
    May 27
    50
    支持一下~
    stone9527
    stone9527
    May 27
    51
    支持 OP
    chiaoyuja
    chiaoyuja
    May 27
    52
    支持一下
    VincentElis1024
    53
    支持一下
    w797200
    w797200
    May 27 via Android
    54
    支持一下
    Wyearn
    Wyearn
    May 27
    55
    支持一下
    yujianfei
    yujianfei
    May 27
    56
    厉害,优秀
    kuicc1987
    kuicc1987
    May 27
    57
    用了好久了,原来是老哥开发的啊~支持
    kloge
    kloge
    May 27
    58
    支持一下
    cyang
    cyang
    PRO
    May 27
    59
    支持一下
    luckycoding
    60
    支持一下
    emberzhang
    61
    支持一下下
    andykuen959595
    62
    支持一下
    Peikon
    Peikon
    May 27
    63
    不出安卓版吗?
    bao626
    bao626
    May 27
    64
    来了~
    SilentFall
    65
    支持一下
    2yes
    2yes
    May 27
    66
    支持楼主
    qhy2ch
    qhy2ch
    May 27
    67
    支持
    raslan
    raslan
    May 27
    68
    支持一下
    neoshui
    neoshui
    May 27
    69
    分子在此
    zws74100000
    zws74100000
    PRO
    May 27
    70
    当个分母
    BigVanYu
    BigVanYu
    May 27
    71
    支持支持!感觉很实用!
    orangeChu
    orangeChu
    May 27
    72
    简单试用了一下,感觉还不错,基础功能就很够用了,支持一下楼主。
    yautou
    yautou
    May 27
    73
    分母支持下
    sdushn
    sdushn
    May 27
    74
    我也来支持一下
    hongs
    hongs
    May 27
    75
    支持一下
    bennyAAA
    bennyAAA
    May 27
    76
    分母来了
    GGbeng1
    GGbeng1
    May 27
    77
    特来支持
    tychanges
    tychanges
    May 27
    78
    支持下
    aaaak
    aaaak
    May 27
    79
    支持一下
    huangqihong
    80
    分子
    lzoje
    lzoje
    May 27
    81
    分母
    i33
    i33
    May 27
    82
    支持一下
    Latin
    Latin
    May 27
    83
    分子来了
    CyberChenCC
    84
    简单试用了一下,发现居然有拼车计算分摊费用的功能,很不错

    针对这个场景有两个可以优化的建议,供参考:

    例如我作为车主
    1. 我通过 USD 结算,但是乘客使用 CNY 付款。是否可以增加按实时汇率计算的功能?
    2. 订阅是按月付费,但是乘客可能是按季度、半年或者一年付款。是否可以增加结算周期的设置?
    sun522198558
    85
    支持一下
    48odaerina
    86
    支持一下
    Sooncheng
    Sooncheng
    May 27
    87
    支持下
    langdalanghonghu
    88
    支持一下
    lwsbluesky
    89
    厉害了,支持
    3922989
    3922989
    May 27
    90
    分子在此
    enaen
    enaen
    May 27
    91
    支持一下
    viso7682
    viso7682
    May 27
    92
    支持一下!!
    mgcnrx11
    mgcnrx11
    May 27
    93
    分母来了
    iPocket
    iPocket
    OP
    May 27
    94
    非常感谢感谢大家的支持,抽了 35 个,我会一个个 DM 你们的
    ![抽奖结果]( )
    iPocket
    iPocket
    OP
    May 27
    95
    没有 DM 功能的吗?😂 那中奖人可以留下邮箱吗?
    iPocket
    iPocket
    OP
    May 27
    96
    @SuperChenCN 感谢建议,后续会考虑优化下的
    iPocket
    iPocket
    OP
    May 27
    98
    @Peikon 目前只做苹果生态😂
    sun522198558
    99
    @iPocket #97 谢谢老板,bGVhcm5pbmdfZ29AMTYzLmNvbQ==
    Wyearn
    Wyearn
    May 27
    100
    @iPocket #95 谢谢 YWFhNTgzODc2OUBnbWFpbC5jb20=
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2303 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 236ms · UTC 00:05 · PVG 08:05 · LAX 16:05 · JFK 19:05
    ♥ Do have faith in what you're doing.