收藏
回答

公众号开发token验证失败?python3.10 fastapi

代码:

@app.get("/wx")
def auto_reply(signature:str, timestamp:str, nonce:str, echostr:str):
    token = "***"
    my_signature = SHA1().getSHA1(token, timestamp, nonce)
    print(my_signature, signature)
    if my_signature==signature:
        print("success")
        return echostr
    else:
        return None


请求提示token验证失败:

接口响应:

公众号appid:wx4b24e1a1b4b065b9

请求时间:

81.69.103.147 - - [21/Apr/2022:10:05:37 +0800] "GET /wx?signature=c8b0775c496b0405c4cc1608e46bcbaf3d2c19e6&echostr=3618148806617316341&timestamp=1650506737&nonce=385327338 HTTP/1.0" 200 21 "-" "Mozilla/4.0"

回答关注问题邀请回答
收藏

3 个回答

  • Ryze
    Ryze
    2023-02-03
    你返回失败的原因是:直接return echostr ,实际的结果是: "echostr""5288532471852235049")这样子 , 可以改成下面的
    
    from fastapi import Request
    
    return Response(content=echostr)
    


    他的结果直接是:echostr


    2023-02-03
    有用 1
    回复 1
    • 🥜Js
      🥜Js
      2023-10-27
      这一楼已经说到点上了
      2023-10-27
      回复
  • 没必要
    没必要
    2022-11-15
    return int(echostr)
    


    试试

    2022-11-15
    有用
    回复
  • 公众号技术运营专员-livia
    公众号技术运营专员-livia
    2022-04-21

    你好,你可以参考:https://developers.weixin.qq.com/community/develop/doc/0002246df549089553bd69bdc51c00

    2022-04-21
    有用
    回复 11
    • qwer
      qwer
      2022-04-21
      nginx日志中接收到了请求,说明请求已经到达服务器了,并且我这边的接口也已经返回了echostr,但是还是token验证失败
      2022-04-21
      回复
    • qwer
      qwer
      2022-04-21
      后台能否看一下是什么问题,公众号appid:
      wx4b24e1a1b4b065b9
      请求时间:
      81.69.103.147 - - [21/Apr/2022:10:05:37 +0800]谢谢
      2022-04-21
      回复
    • qwer
      qwer
      2022-04-21
      点击验证后调用了两次接口,一次成功,一次失败
      2022-04-21
      回复
    • qwer
      qwer
      2022-04-21
      @公众号技术运营专员
      2022-04-21
      回复
    • 公众号技术运营专员-livia
      公众号技术运营专员-livia
      2022-04-21回复qwer
      你现在的情况是你有时候可以调用成功,有时候会失败吗?
      2022-04-21
      回复
    查看更多(6)
登录 后发表内容
问题标签