关于javascript:Python接入微信公众号Token验证

留神点

  1. 官网示例是Pthon2 版本的,如果是Python3 版本须要有改变
  2. 验证胜利返回 echostr 要是 数字格局的

公众号侧配置 (公众号后盾 – 根本配置)

服务器侧配置

  1. 代码局部

官网示例(python2)

# -*- coding: utf-8 -*-
# filename: handle.py

import hashlib
import web

class 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 公布

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理