choujie1689 发表于 2022-4-29 16:35

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)

choujie1689 发表于 2022-4-29 17:08

参数说明

参数        必须        说明
msg_signature        是        企业微信加密签名,msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体
timestamp        是        时间戳
nonce        是        随机数
echostr        是        加密的字符串。需要解密得到消息内容明文,解密后有random、msg_len、msg、CorpID四个字段,其中msg即为消息内容明文
企业后台收到请求后,需要做如下操作:

对收到的请求做Urldecode处理
通过参数msg_signature对请求进行校验,确认调用者的合法性。
解密echostr参数得到消息内容(即msg字段)
在1秒内原样返回明文消息内容(不能加引号,不能带bom头,不能带换行符)

choujie1689 发表于 2022-4-29 17:27

已解决{:1_908:},请版主关闭,谢谢
页: [1]
查看完整版本: python3企业微信接收消息API验证URL的请求不通过