python3企业微信接收消息API验证URL的请求不通过
本帖最后由 15820394839 于 2022-4-29 16:37 编辑企业微信接收消息API验证URL的请求不通过,用调试工具是有返回值的,大佬帮忙看看?@app.route('/wx/receive_task', methods=
from flask import Flask,request
import sys
import urllib.parse
sys.path.append("./api/callback")
from WXBizMsgCrypt3 import *
app=Flask(__name__)
#@app.route("/test/")
#def test():
# return "hello world"
@app.route('/wx/receive_task', methods=['POST','GET'])def receive():
try:
msg_signature = request.args.get('msg_signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
echostr = request.args.get('echostr')
echostr1 = urllib.parse.unquote(echostr)
auth_verify = WXBizMsgCrypt('w835iWzy','zagjYbTHM1LJh5aJUyGDAOJeou81a4s','ww3bb4de4c11111')
#sReplyEchoStr = auth_verify.DecryptMsg(echostr,msg_signature,timestamp,nonce)
s_echo_str = auth_verify.VerifyURL(msg_signature,timestamp,nonce,echostr1)
return str(s_echo_str)
except Exception as e:
print(e)
if __name__=='__main__':
app.run(host='10.0.4.18',port=8082) 参数说明
参数 必须 说明
msg_signature 是 企业微信加密签名,msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体
timestamp 是 时间戳
nonce 是 随机数
echostr 是 加密的字符串。需要解密得到消息内容明文,解密后有random、msg_len、msg、CorpID四个字段,其中msg即为消息内容明文
企业后台收到请求后,需要做如下操作:
对收到的请求做Urldecode处理
通过参数msg_signature对请求进行校验,确认调用者的合法性。
解密echostr参数得到消息内容(即msg字段)
在1秒内原样返回明文消息内容(不能加引号,不能带bom头,不能带换行符) 已解决{:1_908:},请版主关闭,谢谢
页:
[1]