先看博主配置完的效果

微信公众号服务器配置Python+Tornado后端_服务器配置

直接看代码

import tornado.web
import hashlib

class TBWeChatBasisConfigHandler(tornado.web.RequestHandler):
    

    def __init__(self, application, request, **kwargs):
        super(TBWeChatBasisConfigHandler, self).__init__(application, request, **kwargs)
        self.WECHAT_TOKEN = "你在微信后台配置的令牌Token"
        

    def get(self):
        signature = self.get_argument("signature")
        timestamp = self.get_argument("timestamp")
        nonce = self.get_argument("nonce")
        echostr = self.get_argument("echostr")
        if signature is None or len(signature) <= 0 \
            or timestamp is None or len(timestamp) <= 0 \
            or nonce is None or len(nonce) <= 0 \
            or echostr is None or len(echostr) <= 0:
            self.respond_empty()
            return

        tmp_arr = [self.WECHAT_TOKEN, timestamp, nonce]
        tmp_arr.sort()
        tmp_str = "".join(tmp_arr)
        real_signature = self.sha1(tmp_str)
        if signature == real_signature:
            self.write(echostr)
        else:
            self.write("error")
        self.finish()


    def respond_empty(self):
        self.write("Invalid Parameters")
        self.finish()
        
        
    def sha1(self, unencrypted_str):
        return hashlib.sha1(unencrypted_str.encode("utf-8")).hexdigest()