收藏
回答

微信公众号服务器配置一直提示token验证失败?

本地使用postman,请求了要设置在微信公众号服务器回调的URL,可以正常返回echostr,点击提交,一直报错token验证失败,请问这个是什么原因呢?

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

8 个回答

  • 🌞
    🌞
    2022-03-31

    正确返回了微信 服务器需要的echostr,还是提示token验证失败

    2022-03-31
    有用 7
    回复 13
    • 🌞
      🌞
      2022-04-01
      解决了,我去,好坑啊,遇到该问题的朋友,请做如下检查:
      1.检查,request 是不是 UTF-8,避免获取的数据是乱码  


      2.response.setContentType("application/json;charset=UTF-8"),并且设置编码 response.setCharacterEncoding("UTF-8")


      3.也是最重要的一点,接口方法要设置为void,不要返回String,因为微信公众号验证签名的那个URL,人家要求返回echostr,但是这个echostr是要输出在response.getWriter().write(echostr)中的,不要直接 retrun echostr,(这里是真的坑,卡我好久)


      4.加密的几种方式,第一种明文,第二种兼容,第三种安全模式,重点说一下,token验证的时候 微信公众号 服务器发送的数据是不同的,大致如下:
      (1)明文,signature、timeStamp、nonce和echostr都是空
      (2)兼容模式和安全模式下,signature、timeStamp、nonce都是有值的,echostr是空。
      区别:1.token验证和兼容模式和安全模式的,signature、timeStamp、nonce都是有值的,区别在于,token验证的时候echostr是有值的,而安全模式下和兼容模式下,微信给我们接口发消息的时候echostr是没有值的   2.明文模式和安全模式和兼容模式的区别在于,四个字段是否有值,可以作为判断依据。判断是否哦要加解密


      大概就这么多吧,一步一个坑,踩过来的,希望能帮到大家,少踩坑,快速解决问题。
      2022-04-01
      8
      回复
    • I⃰T⃰_⃰M⃰A⃰R⃰K⃰E⃰R⃰
      I⃰T⃰_⃰M⃰A⃰R⃰K⃰E⃰R⃰
      2022-06-28
      谢谢老铁,你太给力了,完美解决了我的困难,好人一生平安。
      2022-06-28
      回复
    • belief
      belief
      2022-08-09
      好人一生平安
      2022-08-09
      回复
    • 苍茫了然
      苍茫了然
      2022-09-07
      真的太谢谢了,找了好久,困扰了好久,关键之前的返回string是可行的
      2022-09-07
      回复
    • LuoXuMiao
      LuoXuMiao
      2022-10-04
      感谢大佬,我去查资料差点以为是我网络问题了
      2022-10-04
      回复
    查看更多(8)
  • 李康
    李康
    2023-11-23

    如果thinkphp框架,是有个巨坑的,同一段代码,独立文件就可以,放到框架里就不行了,

    由于thinkphp开启了 debug模式 ,导致每次请求都会暗地里输出一些debug信息,关上就好了

    2023-11-23
    有用 3
    回复 4
    • 落枫
      落枫
      04-21
      真的恶心啊,我就碰到了这个情况
      04-21
      1
      回复
    • 七月宵伽
      七月宵伽
      07-05
      哥们,能往后退两步吗?我想给你磕个头(真的是太感谢了)
      07-05
      回复
    • 陆
      07-29
      哥们,能往后退三步吗?我想给你磕个头(真的是太感谢了)
      07-29
      回复
    • LT
      LT
      08-19
      哥们,能往后退两步吗?我想给你磕个头(真的是太感谢了)
      08-19
      回复
  • 懒懒
    懒懒
    2023-12-21

    返回类型不能是string!!!使用php返回了string类型,结果一直失败,改成int后,终于成功了!

    2023-12-21
    有用 2
    回复 1
    • Joyce
      Joyce
      01-19
      好人一生平安!!我用 python 返回int(echostr) 终于成功了!
      01-19
      回复
  • 欢乐马
    欢乐马
    03-10

    不要返回对象,直接返回这个字符串就可以成功了

    03-10
    有用
    回复
  • 淘淘屋
    淘淘屋
    2023-06-01

    大神,求助,我按照你上面的操作试了还是不行,请求支援。

    2023-06-01
    有用
    回复
  • 峻铭
    峻铭
    2023-04-23

    使用示例代码hashcode = sha1.hexdigest() 生成的hashcode始终不变,无法与微信传过来的signature匹配,为什么呢


    2023-04-23
    有用
    回复 3
    • Yeo
      Yeo
      01-25
      示例代码有问题。正确的生成hashcode如下:
      01-25
      1
      回复
    • 康
      03-29回复Yeo
      这个是正解
      03-29
      回复
    • 路还长、天会亮
      路还长、天会亮
      07-13回复Yeo
      解决了,谢谢大佬
      07-13
      回复
  • LuoXuMiao
    LuoXuMiao
    2022-10-04

    另外有个问题想问下,你是怎么知道是要将echo返回的写在response里面呢

    2022-10-04
    有用
    回复
  • 梵空
    梵空
    2022-08-24

    如果微信给你返回的是echostr=null,signature=null,timestamp=null,nonce=null,你会怎么处理?

    2022-08-24
    有用
    回复 1
    • 五十块
      五十块
      2023-02-27
      diaogang他
      2023-02-27
      回复
登录 后发表内容