如果确认在后台返回echostr没有出现错误的情况下,还是出现“token验证失败”是因为flask默认返回的Content-Type是application/json格式,需要make_response()返回原本格式text/html; charset=utf-8
class MessageManager(BaseHandler):
def __init__(self):
super(MessageManager, self).__init__()
def check(self, args=None):
"""验证"""
try:
my_signature = request.args.get('signature')
my_timestamp = request.args.get('timestamp')
my_nonce = request.args.get('nonce')
my_echostr = request.args.get('echostr')
data = [DevelopmentConfig.WEIXIN_TOKEN, my_timestamp, my_nonce]
data.sort()
temp = ''.join(data).encode('utf-8')
mysignature = hashlib.sha1(temp).hexdigest()
if mysignature == my_signature:
return make_response(my_echostr)
else:
self.logger.error(False)
return False
except Exception as ex:
self.logger.error('验证错误:%s' % traceback.format_exc())
return ResponseHelper.return_server_error()