微信答題搶紅包小程序?qū)崿F(xiàn)思路

1.背景

18年快年底的時候,有一天突然想要不要做一個搶紅包的小程序春節(jié)期間玩玩节吮,但是又不能直接跟微信一樣直接搶吧浪谴,后面想著就引入答題這種模式道盏,答對一次搶一次紅包,答對可一直搶到最后移国,答錯則結(jié)束搶紅包吱瘩,大概就是這樣一個玩法,看著挺簡單的一個功能迹缀,其實全流程下來要考慮的點也是不少使碾,下面就簡單做一個思路的介紹:

2. 資質(zhì)相關(guān)的一些問題

1.申請小程序:
小程序個人蜜徽、企業(yè)都可以申請,但是因為需要包紅包涉及到支付功能票摇,必須企業(yè)資質(zhì)拘鞋,所以找代理注冊了一家公司,注冊公司全流程也還是挺多事的矢门,這里不細講盆色,反正有了公司后,又進行了微信公眾號認證祟剔,然后用企業(yè)資質(zhì)申請小程序隔躲,微信支付等。
2.小程序服務(wù)類目:
紅包類小程序因為涉及到用戶資金物延,按照規(guī)范服務(wù)類目應(yīng)該使用社交紅包宣旱,但是該類目下同樣要求《增值電信業(yè)務(wù)經(jīng)營許可證》,該證辦理也比較麻煩叛薯,如果正式商業(yè)化建議還是辦理浑吟,我們暫時使用的其它類目。


小程序社交紅包類目

3.核心功能

1.包紅包
包紅包的時候設(shè)置題目案训、金額买置、數(shù)量,其中題目可自定義或者隨機强霎,自定義是用戶自己設(shè)置題干忿项,選項,答案等城舞,隨機題使用的我們的題庫轩触,生成紅包后可分享小程序。

  1. 搶紅包
    用戶點開小程序家夺,會隨機獲取一個題目脱柱,自定義題則從用戶自定義題庫里選,隨機題則從系統(tǒng)題庫中選拉馋,用戶答對后則獲得一個紅包榨为,繼續(xù)答下一題,答錯則結(jié)束搶紅包煌茴。
  2. 提現(xiàn)
    搶到紅包后可馬上進行提現(xiàn)随闺,提現(xiàn)功能使用的微信支付“企業(yè)付款到零錢功能”,該功能開通有一個坑就是T+1結(jié)算周期入駐需滿90天蔓腐,且最近30天連續(xù)不間斷保持交易矩乐,對于新開的商戶肯定不滿足的,所以我們的結(jié)算周期用的T+7的,當(dāng)然結(jié)算周期其實是看微信支付商戶開通的時候選擇的行業(yè)來的散罕,不是自己決定的分歇。


    企業(yè)付款到零錢

4.風(fēng)險點考慮

做跟錢打交道的功能,就一定要考慮風(fēng)險欧漱,比如是否會被攻擊职抡,羊毛黨是否能褥羊毛,上線第一天就被攻擊了一波硫椰,當(dāng)時有個漏洞差點就被褥了繁调。

  1. 搶紅包金額和數(shù)量不能搶到負數(shù)
    假設(shè)群里面一百人搶最后一個紅包,那只能讓一個人搶到靶草,或者別人惡意攻擊時蹄胰,大并發(fā)流量搶紅包。
    解決方式:數(shù)據(jù)庫在減金額或者數(shù)量的時候where 后面加條件奕翔,如果寫的代碼里面先從數(shù)據(jù)庫查出來裕寨,發(fā)現(xiàn)金額或者數(shù)量滿足,就直接去減了派继,并發(fā)數(shù)高的時候宾袜,可能一百個請求去查的時候都是滿足的,但是最后數(shù)據(jù)庫去執(zhí)行的時候只一個滿足驾窟,沒控制好數(shù)據(jù)庫金額和數(shù)量就會減到負數(shù)庆猫。
  2. 提現(xiàn)的時候不能提現(xiàn)到負數(shù)
    同樣的別人假設(shè)惡意攻擊,同時一百并發(fā)提現(xiàn)绅络,不能讓金額提現(xiàn)到負數(shù)月培,防止惡意提現(xiàn)。
    解決方案:同樣是在數(shù)據(jù)更新的時候加where條件恩急,不能只在代碼里面校驗杉畜。
  3. 生成紅包金額算法
    算法是參考的網(wǎng)上的,實時計算紅包金額衷恭,沒有提前去生成各個紅包金額此叠,實時計算規(guī)則每次生成紅包金額為[0.01,剩余紅包金額平均值*2),右邊是開區(qū)間随珠。
  /**
     * 獲取隨機金額灭袁,注意剩余金額不能小于0.01*remainNum
     * @param remainMoney 剩余金額
     * @param remainNum  剩余數(shù)量
     * @return
     */
    public static BigDecimal getRandomMoney(BigDecimal remainMoney, Integer remainNum) {
        // remainSize 剩余的紅包數(shù)量
        // remainMoney 剩余的錢
        if (remainNum == 1) {
            //如果只剩一個,則返回所有金額
            return remainMoney;
        }
        Random r     = new Random();
        double min   = 0.01; //
        double max   = remainMoney.doubleValue() / remainNum * 2;
        double money = r.nextDouble() * max;
        money = money <= min ? 0.01: money;
        money = Math.floor(money * 100) / 100;
        return new BigDecimal(money);
    }

5.關(guān)于性能

對性能要求高的就是搶紅包這塊窗看,如果真的是大規(guī)模用戶用简卧,搶紅包這塊的設(shè)計就很重要,我們有用到redis烤芦,但redis只是做了比如題目的緩存,搶紅包這塊目前還是寫db析校,如果要提升性能的化构罗,搶紅包過程可以全部走redis铜涉,異步更新到數(shù)據(jù)庫,有考慮這塊的設(shè)計遂唧,但時間問題當(dāng)時沒有去實現(xiàn)芙代。

最后放個小程序碼,有興趣的可以體驗一下盖彭。


學(xué)霸搶包首頁小程序碼.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纹烹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子召边,更是在濱河造成了極大的恐慌铺呵,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隧熙,死亡現(xiàn)場離奇詭異片挂,居然都是意外死亡,警方通過查閱死者的電腦和手機贞盯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門音念,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躏敢,你說我怎么就攤上這事闷愤。” “怎么了件余?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵讥脐,是天一觀的道長。 經(jīng)常有香客問我蛾扇,道長攘烛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任镀首,我火速辦了婚禮坟漱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘更哄。我一直安慰自己芋齿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布成翩。 她就那樣靜靜地躺著觅捆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪麻敌。 梳的紋絲不亂的頭發(fā)上栅炒,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音,去河邊找鬼赢赊。 笑死乙漓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的释移。 我是一名探鬼主播叭披,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玩讳!你這毒婦竟也來了涩蜘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤熏纯,失蹤者是張志新(化名)和其女友劉穎同诫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豆巨,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡剩辟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了往扔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贩猎。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萍膛,靈堂內(nèi)的尸體忽然破棺而出吭服,到底是詐尸還是另有隱情,我是刑警寧澤蝗罗,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布艇棕,位于F島的核電站,受9級特大地震影響串塑,放射性物質(zhì)發(fā)生泄漏沼琉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一桩匪、第九天 我趴在偏房一處隱蔽的房頂上張望打瘪。 院中可真熱鬧,春花似錦傻昙、人聲如沸闺骚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽僻爽。三九已至,卻和暖如春贾惦,著一層夾襖步出監(jiān)牢的瞬間胸梆,已是汗流浹背敦捧。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乳绕,地道東北人绞惦。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像洋措,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杰刽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 今天是日更第四天菠发,先要告訴自己一聲繼續(xù)加油,因為學(xué)習(xí)的路途是沒有止境的贺嫂,也許有一天當(dāng)你回過頭來看的時候滓鸠,你會發(fā)...
    yangchaojun閱讀 475評論 0 0
  • 中秋節(jié)的味道是難忘的,中秋節(jié)那一天第喳,我和爸爸媽媽在奶奶家(在豐順縣湯坑鎮(zhèn))糜俗,準(zhǔn)備晚上燒烤,我爸爸把所有的親戚都請...
    邱邱邱浩明閱讀 330評論 9 1
  • 今天不是我的生日,然而變老這件事情跟生日并沒有什么直接關(guān)系扩淀。意識到自己變老是個漫長且不易的過程楔敌,因為沒有人愿意承...
    愿你如朝陽閱讀 400評論 0 0
  • 錯過了所有山峰低垂的月影 錯過了所有云朵聯(lián)袂的彩髻 錯過了下雨天雨巷里打傘時氤氳的霧氣 錯過了艷陽日老街坊和你一起...
    今夕謠閱讀 241評論 0 4
  • 相遇都有命運在里面 分開也是 想起陳奕迅前幾年的情侶演唱會門票 說著一定會在來年去看只有情侶一起才能看的演唱會 座...
    盧明莞閱讀 265評論 0 2