您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關基于公眾號用Python開發一個抽獎程序的過程是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
本文假設你已經有一個自己的公眾號,還沒有公眾號的可以在平臺注冊一個,地址是:http://mp.weixin.qq.com 。
首先登錄公眾號平臺,填寫服務器配置
URL 不能亂填,這個是你的服務器地址, 比如:http://123.33.44.55/wx ,IP 地址是服務器的公網IP,所以前提你還得有一臺服務器。
你可以選擇國內的虛擬主機服務商,比如阿里云、騰訊云或者Ucloud(三位廠商記得給我廣告費啊)都可以
填寫完直接提交會驗證失敗的,因為服務器還沒接入進來。
所以要先驗證服務器地址的有效性。
驗證服務器地址的有效性就是下面的處理邏輯,我這里是用的flask框架。
微信服務器請求URL的時候,會傳4個參數給你,分別是
所謂驗證服務器地址的有效性,就是要確認請求是否來自微信服務器,因為發起請求的也有可能是某個黑客。我們可以通過檢驗signature對請求進行校驗,若確認此次GET請求來自微信服務器,原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。
加密/校驗流程如下:
1)將token、timestamp、nonce三個參數進行字典序排序
2)將三個參數字符串拼接成一個字符串進行sha1加密
3)開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。
將代碼部署到自己服務器之后,這時候再去提交,會提示你提交成功。驗證成功后,就可以開始實現業務邏輯了。
當用戶在公眾號發送消息時,微信會以POST請求的方式將消息轉發給業務服務器(就是我們自己處理業務邏輯的程序),然后我們根據用戶發送的內容進行相應的邏輯處理。
微信會通過POST請求,以xml的格式發送給我們業務服務器,里面的內容包括發送的消息內容、時間、還有open_id, open_id 唯一對應用戶。雖然你不知道用戶的昵稱,但是只要知道open_id 就可以唯一確定是哪個用戶。
實現抽獎系統,我們首先定義了數據模型
只要三個字段就夠了,number 是抽獎號碼,open_id 表示誰獲得了該抽獎號碼, 初始為空, valid 表示該號碼是否為中獎號碼。初始化系統時,我們會隨機給一些數據設置valid有True, 比如你想抽3個獎品,就隨機弄3條數據為True。
模型建立完成后,接下來就可以處理具體的業務邏輯了。當用戶發送抽獎關鍵字時,我們要做3件事。
1、判斷當前用戶是否還有抽獎資格
2、生成抽獎號碼
3、查詢剩余抽獎次數
回復另一個關鍵字查詢是否中獎時,我們只需要判斷它的抽獎號碼里面有沒有匹配的valid為True的數據即可。我都這些邏輯都封裝在models里面,所以看起來也沒幾行代碼。
以上就是整個抽獎小程序的全部思路。剩下的事情就是把代碼部署到服務器,就能實現文章開頭的效果了。
上述就是小編為大家分享的基于公眾號用Python開發一個抽獎程序的過程是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。