微信抽獎活動開發的一點想法

微信鑑權

利用微信的受權,咱們獲得咱們須要的信息,這邊微信的公衆平臺開發者文檔有較消息的文檔,具體可見http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
在鑑權這一塊,主要是利用微信提供的接口,獲得用戶的openid,即用戶惟一標識,用做用戶的身份的斷定和後續的操做。html

後臺邏輯

這裏邏輯也不復雜,若是用戶鑑權經過後,進入到公衆號的活動頁面,與微信平臺接口的操做基本上就結束了(若是須要刷新access_token的話就是另一回事)。流程就進入到了整個活動的後臺邏輯了,通常的活動,以抽獎類的居多,下面就以抽獎類的活動中的幾個點談一下想法。數據庫

用戶信息的存儲

當用戶屢次進入,就會對數據庫用戶表進行讀或者寫操做,若是併發量大的話,容易形成系統響應緩慢的問題,甚至出現進不去活動頁面等極端狀況。這時候,首先須要作的是就是對數據庫進行優化,正確的設計設計庫和數據庫的查詢和插入等語句。若是優化後的性能仍是不能滿意,能夠考慮使用NoSQL數據庫,Redis或者Memcached,可較好的解決在用戶登錄時因爲數據庫讀寫瓶頸形成的登陸緩慢的問題。微信

抽獎邏輯設計

這裏主要設計抽獎邏輯的設計,抽獎活動,核心就是如何設計用戶的中獎邏輯,能按照預期合理地將獎品發出去,實現起來大概有下面幾種。
1.直接設計一個數字,好比100,當第100個用戶進來進行遊戲操做的時候直接中獎,原理很簡單,實現起來極爲方便,可是須要對用戶的量和時間點有一個校準確的預期,否則若是數字過大,可能活動結束了都沒能有人中獎,並且這種方法後期改變機率可能不是特別方便。
2.用戶進入活動界面,直接獲得一個隨機數,好比Random random = new Random(100);而後和預先設置的中獎的幸運數作比較,若是相等,則返回中獎。這種中獎邏輯設計起來也不復雜,主要問題是對機率的一個把控。
若是有具體的要求,可能還須要本身設計一種抽獎邏輯,兩種方法混合起來用,最好能作到方便的進行機率的調整。併發

暫時只想到了這麼多,之後有新的再補充吧,若是有什麼說的不對的地方,請多多指教。dom

相關文章
相關標籤/搜索