注意官方例子是Python2版本,如果是Python3版本需要修改,验证返回echostr如果token是数字格式,验证接口无法重定向到公众号侧配置(公众号背景-基础配置)服务端配置代码部分官方示例(python2)#-*-coding:utf-8-*-#filename:handle.pyimporthashlibimportwebclassHandle(object):defGET(self):try:data=web.input()iflen(data)==0:返回“你好,这是句柄视图”signature=data.signaturetimestamp=data.timestampnonce=data.nonceechostr=data.echostrtoken="xxxx"#请根据公众平台官网信息填写list=[token,timestamp,nonce]\基础配置list.sort()sha1=hashlib.sha1()map(sha1.update,list)hashcode=sha1.hexdigest()print"handle/GETfunc:hashcode,signature:",hashcode,signatureifhashcode==signature:returnechostrelse:return""exceptException,Argument:returnArgumentpython3version(Django)类WeChatTokenViewSet(viewsets.ViewSet):deflist(self,request):try:token='pTpKJrLR1qwaNat6mzUWXvVblHB1uZS3'timestamp=request.query_params.get('timestamp')nonce=request.query_params.get('nonce')echostr=request.query_params。get('echostr')signature=request.query_params.get('signature')list=[token,timestamp,nonce]list.sort()temp=''.join(list)sha1=hashlib.sha1(temp.encode('utf-8'))hashcode=sha1.hexdigest()print("handle/GETfunc:hashcode,signature:",hashcode,signature)ifhashcode==signature:returnResponse(int(echostr),status=状态.HTTP_200_OK)else:print('微信Token校验失败')returnResponse('',status=status.HTTP_200_OK)exceptExceptionase:print('微信Token解析失败',e)returnResponse('',status=状态.HTTP_200_OK)完成Token校验后,需要添加IP白名单,将服务器IP添加到白名单中
