本文实例讲述了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息。分享给大家供大家参考,具体如下:

说明:此代码用于接收手机微信端发送的消息

#-*- 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验证时微信发送的相关参数

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验证请求相同的参数,使用上面注释掉的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)

#解析发送的内容并打印

xml_tree = ET.fromstring(sMsg)

content = xml_tree.find("Content").text

print content

#被动响应消息,将微信端发送的消息返回给微信端

sRespData = '''

1348831860

1234567890123456

1

'''

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)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例

本文地址: http://www.cppcns.com/jiaoben/python/200500.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐