python3.6微信公众号开发-配置api接入流程

2 篇文章 0 订阅
1 篇文章 0 订阅

接入流程很简单,我这边使用tornado实现的

微信服务器会请求你的接口,附带4个参数,分别是 timestamp、nonce、signature、echostr

我们将自己输入的token(验证接口的时候你自己输入的)、timestamp、nonce放入一个列表中并sort()下,接下来拼接成字符串,使用hashlib.sha1()把拼接的字符串加密下,在跟signature这个字段的值进行比较,一致后原样将echostr返回即可,如果想要省事就不用做这些验证的流程了,直接将ehcostr返回即可。上代码.....

from tornado.web import RequestHandler


class BaseHander(RequestHandler):

    def __init__(self, application, request, **kwargs):
        super().__init__(application, request, **kwargs)

    def args_to_dict(self):
        data = dict()
        if self.request.body.decode():
            try:
                data.update(json.loads(self.request.body.decode()))
            except json.decoder.JSONDecodeError:
                for i in self.request.body.decode().split('&'):
                    k = i.split('=')[0]
                    v = i.split('=')[1].decode()
                    data[k] = v
            except Exception as e:
                self.write(ReturnMsg.Server_Inner_Error['resMsg'])
        elif self.request.arguments:
            for k in self.request.arguments:
                data[k] = self.get_argument(k)
            return data
        else:
            return data
        return data


class authentiCation(BaseHander):
    def get(self, *args, **kwargs):
        data = self.args_to_dict()
        import hashlib
        token = 'lsxboy'
        timestamp = data['timestamp']
        nonce = data['nonce']
        signature = data['signature']
        echostr = data['echostr']
        resu = [token, timestamp, nonce]
        resu.sort()
        re = ''.join(resu)
        sha = hashlib.sha1(re.encode('utf-8'))
        re = sha.hexdigest()
        if re == signature:
            return self.write(echostr)

 

ps:如有错误,请留言,我会及时纠正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值