Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息示例
本文實例講述了Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息。分享給大家供大家參考,具體如下:
說明:此代碼用于接收手機微信端發(fā)送的消息
#-*- coding:utf-8 -*- from flask import Flask,request from WXBizMsgCrypt import WXBizMsgCrypt import xml.etree.cElementTree as ET import sys app = Flask(__name__) @app.route('/index',methods=['GET','POST']) def index(): sToken = 'Uxxxx' sEncodingAESKey = 'U2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' sCorpID = 'wx1xxxxxxxxxxxxx' wxcpt=WXBizMsgCrypt(sToken,sEncodingAESKey,sCorpID) #獲取url驗證時微信發(fā)送的相關(guān)參數(shù) sVerifyMsgSig=request.args.get('msg_signature') sVerifyTimeStamp=request.args.get('timestamp') sVerifyNonce=request.args.get('nonce') sVerifyEchoStr=request.args.get('echostr') # sReqMsgSig = sVerifyMsgSig sReqTimeStamp = sVerifyTimeStamp sReqNonce = sVerifyNonce # sResqMsgSig = sVerifyMsgSig sResqTimeStamp = sVerifyTimeStamp sResqNonce = sVerifyNonce #驗證url if request.method == 'GET': ret,sEchoStr=wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,sVerifyNonce,sVerifyEchoStr) print type(ret) print type(sEchoStr) if (ret != 0 ): print "ERR: VerifyURL ret:" + ret sys.exit(1) return sEchoStr #接收客戶端消息 if request.method == 'POST': #sReqMsgSig = request.form.get('msg_signature') #sReqTimeStamp = request.form.get('timestamp') #sReqNonce = request.form.get('nonce') #賦值url驗證請求相同的參數(shù),使用上面注釋掉的request.form.get方式獲取時,測試有問題 sReqMsgSig = sVerifyMsgSig sReqTimeStamp = sVerifyTimeStamp sReqNonce = sVerifyNonce sReqData = request.data print sReqData ret,sMsg=wxcpt.DecryptMsg( sReqData, sReqMsgSig, sReqTimeStamp, sReqNonce) if (ret != 0): print "ERR: VerifyURL ret:" sys.exit(1) #解析發(fā)送的內(nèi)容并打印 xml_tree = ET.fromstring(sMsg) content = xml_tree.find("Content").text print content #被動響應(yīng)消息,將微信端發(fā)送的消息返回給微信端 sRespData = '''<xml> <ToUserName><![CDATA[mycreate]]></ToUserName> <FromUserName><![CDATA[wx177d1233ab4b730b]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[''' +content +''']]></Content> <MsgId>1234567890123456</MsgId> <AgentID>1</AgentID> </xml>''' ret,sEncryptMsg=wxcpt.EncryptMsg(sRespData, sReqNonce, sReqTimeStamp) if( ret!=0 ): print "ERR: EncryptMsg ret: " + ret sys.exit(1) return sEncryptMsg if __name__ == '__main__': app.run(host='0.0.0.0',port=6000,debug=True)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python入門與進階經(jīng)典教程》。
希望本文所述對大家Python程序設(shè)計有所幫助。
- python實現(xiàn)的自動發(fā)送消息功能詳解
- 使用python3調(diào)用wxpy模塊監(jiān)控linux日志并定時發(fā)送消息給群組或好友
- python實現(xiàn)給微信指定好友定時發(fā)送消息
- python實現(xiàn)微信定時每天和女友發(fā)送消息
- python3+pyqt5+itchat微信定時發(fā)送消息的方法
- Python定時發(fā)送消息的腳本:每天跟你女朋友說晚安
- python模仿網(wǎng)頁版微信發(fā)送消息功能
- python實現(xiàn)給微信公眾號發(fā)送消息的方法
- Python 網(wǎng)絡(luò)編程起步(Socket發(fā)送消息)
- Python調(diào)用飛書發(fā)送消息的示例
相關(guān)文章
python用pandas數(shù)據(jù)加載、存儲與文件格式的實例
今天小編就為大家分享一篇python用pandas數(shù)據(jù)加載、存儲與文件格式的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12使用python 計算百分位數(shù)實現(xiàn)數(shù)據(jù)分箱代碼
這篇文章主要介紹了使用python 計算百分位數(shù)實現(xiàn)數(shù)據(jù)分箱代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03詳解Python中Sync與Async執(zhí)行速度快慢對比
Python新的版本中支持了async/await語法, 很多文章都在說這種語法的實現(xiàn)代碼會變得很快, 但是這種快是有場景限制的。這篇文章將嘗試簡單的解釋為何Async的代碼在某些場景比Sync的代碼快2023-03-03關(guān)于Python中flask-httpauth庫用法詳解
這篇文章主要介紹了關(guān)于Python中flask-httpauth庫用法詳解,Flask-HTTPAuth是一個?Flask?擴展,它簡化了?HTTP?身份驗證與?Flask?路由的使用,需要的朋友可以參考下2023-04-04解決python3在anaconda下安裝caffe失敗的問題
下面小編就為大家?guī)硪黄鉀Qpython3在anaconda下安裝caffe失敗的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06python編程-將Python程序轉(zhuǎn)化為可執(zhí)行程序[整理]
python編程-將Python程序轉(zhuǎn)化為可執(zhí)行程序[整理]...2007-04-04python通過ElementTree操作XML獲取結(jié)點讀取屬性美化XML
本文講解如何通過ElementTree解析XML,獲取兒子結(jié)點、插入兒子結(jié)點、操作屬性、美化XML2013-12-12