留神点
- 官网示例是Pthon2 版本的,如果是Python3 版本须要有改变
- 验证胜利返回 echostr 要是 数字格局的
公众号侧配置 (公众号后盾 - 根本配置)
服务器侧配置
- 代码局部
官网示例(python2)
# -*- coding: utf-8 -*-# filename: handle.pyimport hashlibimport webclass Handle(object): def GET(self): try: data = web.input() if len(data) == 0: return "hello, this is handle view" signature = data.signature timestamp = data.timestamp nonce = data.nonce echostr = data.echostr token = "xxxx" #请依照公众平台官网\根本配置中信息填写 list = [token, timestamp, nonce] list.sort() sha1 = hashlib.sha1() map(sha1.update, list) hashcode = sha1.hexdigest() print "handle/GET func: hashcode, signature: ", hashcode, signature if hashcode == signature: return echostr else: return "" except Exception, Argument: return Argument
python3 版本 (Django)
class WeChatTokenViewSet(viewsets.ViewSet): def list(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/GET func: hashcode, signature: ", hashcode, signature) if hashcode == signature: return Response(int(echostr), status=status.HTTP_200_OK) else: print('微信Token校验失败') return Response('', status=status.HTTP_200_OK) except Exception as e: print('微信Token解析失败', e) return Response('', status=status.HTTP_200_OK)
实现Token 校验后
须要减少 IP 白名单 将服务器 IP 退出白名单
本文由一文多发经营工具平台 EaseWriting 公布