<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          太強了!基于公眾號用 Python 開發(fā)一個抽獎程序

          共 1624字,需瀏覽 4分鐘

           ·

          2020-07-27 19:31

          大家好

          上周在公眾號做了個抽象的活動,程序是自己臨時寫的,就是下面這種效果?;貜椭付P鍵字系統(tǒng)會自動給你分配一個抽獎號碼


          回復另一個關鍵字可以查看當前有沒有中獎,功能可以說非常簡單。


          有些小伙伴拿到代碼之后,問有沒有詳細的教程,光是看代碼不知道怎么運行。

          于是就有了這篇文章。

          本文假設你已經有一個自己的公眾號,還沒有公眾號的可以在平臺注冊一個,地址是:http://mp.weixin.qq.com 。

          首先登錄公眾號平臺,填寫服務器配置


          URL 不能亂填,這個是你的服務器地址, 比如:http://123.33.44.55/wx ,IP 地址是服務器的公網IP,所以前提你還得有一臺服務器。


          你可以選擇國內的虛擬主機服務商,比如阿里云、騰訊云或者Ucloud(三位廠商記得給我廣告費?。┒伎梢?/p>


          填寫完直接提交會驗證失敗的,因為服務器還沒接入進來。

          所以要先驗證服務器地址的有效性。

          驗證服務器地址的有效性就是下面的處理邏輯,我這里是用的flask框架。


          微信服務器請求URL的時候,會傳4個參數給你,分別是


          所謂驗證服務器地址的有效性,就是要確認請求是否來自微信服務器,因為發(fā)起請求的也有可能是某個黑客。我們可以通過檢驗signature對請求進行校驗,若確認此次GET請求來自微信服務器,原樣返回echostr參數內容,則接入生效,成為開發(fā)者成功,否則接入失敗。

          加密/校驗流程如下:

          • 1)將token、timestamp、nonce三個參數進行字典序排序

          • 2)將三個參數字符串拼接成一個字符串進行sha1加密

          • 3)開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信。

          將代碼部署到自己服務器之后,這時候再去提交,會提示你提交成功。驗證成功后,就可以開始實現(xiàn)業(yè)務邏輯了。

          實現(xiàn)抽獎邏輯

          當用戶在公眾號發(fā)送消息時,微信會以POST請求的方式將消息轉發(fā)給業(yè)務服務器(就是我們自己處理業(yè)務邏輯的程序),然后我們根據用戶發(fā)送的內容進行相應的邏輯處理。

          微信會通過POST請求,以xml的格式發(fā)送給我們業(yè)務服務器,里面的內容包括發(fā)送的消息內容、時間、還有open_id, open_id 唯一對應用戶。雖然你不知道用戶的昵稱,但是只要知道open_id 就可以唯一確定是哪個用戶。

          定義數據模型

          實現(xiàn)抽獎系統(tǒng),我們首先定義了數據模型


          只要三個字段就夠了,number 是抽獎號碼,open_id 表示誰獲得了該抽獎號碼, 初始為空, valid 表示該號碼是否為中獎號碼。初始化系統(tǒng)時,我們會隨機給一些數據設置valid有True, 比如你想抽3個獎品,就隨機弄3條數據為True。

          模型建立完成后,接下來就可以處理具體的業(yè)務邏輯了。當用戶發(fā)送抽獎關鍵字時,我們要做3件事。

          1、判斷當前用戶是否還有抽獎資格
          2、生成抽獎號碼
          3、查詢剩余抽獎次數

          回復另一個關鍵字查詢是否中獎時,我們只需要判斷它的抽獎號碼里面有沒有匹配的valid為True的數據即可。我都這些邏輯都封裝在models里面,所以看起來也沒幾行代碼。


          以上就是整個抽獎小程序的全部思路。剩下的事情就是把代碼部署到服務器,就能實現(xiàn)文章開頭的效果了。

          是不是超級簡單。源代碼獲取請回復“公眾號”

          如果你正想實現(xiàn)一個類似的小程序,例如做個天氣預報查詢等有趣味的程序,如果編程過程中總是遇到各種問題卡殼,可以加我微信 "yueryounali",好的問題勝過無數個好答案。我們的python交流群也有很多高手。

          學編程關鍵在于動手,提高在于實踐。

          推薦:
          1. “痛苦地去死”,Linus再次怒噴Intel

          2. 再見,Navicat!這個Pycharm的兄弟真香!

          3. 說多了都是淚,一個項目上線的真實過程…

          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爱爱爱爱网 | 无码子一区二区 | 亚洲AV无码成人精品区欧洲 | 在线观看免费黄视频 | 五月婷婷aa |