收藏
回答

微信客服,一直显示 token 校验失败,使用官方demo代码也不行,急急急



后台代码如下:


# 这部分来自官方demo


class SHA1:

    """计算公众平台的消息签名接口"""
 
    def getSHA1(self, token, timestamp, nonce, encrypt):
        """用SHA1算法生成安全签名
        @param token:  票据
        @param timestamp: 时间戳
        @param encrypt: 密文
        @param nonce: 随机字符串
        @return: 安全签名
        """
        sortlist = [token, timestamp, nonce, str(encrypt)]
        sortlist.sort()
        sha = hashlib.sha1()
        sha.update("".join(sortlist).encode('utf-8'))
        return  WXBizMsgCrypt_OK, sha.hexdigest()
 

# 这部分为业务代码,譬如我的 url 地址为 https://www.xxxxxxx.com:9999

# 然后 get 请求到 https://www.xxxxxxx.com:9999 这里到时候,会路由到 Message -> get 方法中



class Message(Resource):
    def get(self):
        """客服消息自动回复
        """
        signature = request.args.get('signature', '1')
        echostr = request.args.get('echostr', '1')
        timestamp = request.args.get('timestamp', '1')
        nonce = request.args.get('timestamp', '1')
        token = 'hackmonster'
 
        sha1 = service.SHA1()
        ret, signature = sha1.getSHA1(token, timestamp, nonce, '')
        print(ret, signature)
 
        return True



问题:

  • token 校验的具体逻辑到底是咋样的,我怀疑难道是我理解错了?

  • 为啥我测试的时候,直接在 get 最末返回 true 也不行呢?

最后一次编辑于  2018-11-13
回答关注问题邀请回答
收藏

1 个回答

  • 2018-11-13

    看起来用的是python?推荐用这个库 https://github.com/jxtech/wechatpy



    2018-11-13
    有用
    回复 1
    • TTL
      TTL
      2018-11-13

      嗯,感谢,我去看看

      2018-11-13
      回复
登录 后发表内容