收藏
回答

微信H5支付 v3支付通知接口报错,是什么原因?

ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: casterxml.jackson.databind.ObjectReader.readValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;] with root cause

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectReader.readValue(Ljava/lang/String;Ljava/lang/Class;)Ljlang/Object;

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

3 个回答

  • 吃葡萄不吐葡萄皮
    吃葡萄不吐葡萄皮
    2022-06-05
    将body内容 JSONObject.parseObject(bodyStr).toJSONString() 解决,可能是没格式化造成
    


    2022-06-05
    有用 2
    回复 5
  • Liar
    Liar
    2023-04-18

    这个问题一种可能是因为项目使用的springboot依赖中默认的jackson版本过低,第二种是自定义的jackson版本过低。建议手动更换2.13.4.2版本以上的jackson依赖。官方也给了正确的指示。目前最新wechatpay-apache-httpclient-0.4.9中使用的是2.13.4.2版本的jackson,如果使用sdk的原生校验、解密方法建议升级至高于2.13.4.2版本以上,亲测有效。

    2023-04-18
    有用 2
    回复
  • 及時行樂
    及時行樂
    2023-03-01

    微信官方包里封装的方法有些坑,从请求头里拿到的body只能验签成功不能解密,自已用对象接收body又验签不成功且转化为微信封装好的对象实体类接收到的参数总为空

    去把wechatpay-apache-httpclient里封装的验签和解密方法复制到自己的项目里,然后如下改造一下,就能验签解密成功


    2023-03-01
    有用
    回复 1
    • 百⃕李⃕ ⁸ ⁸
      百⃕李⃕ ⁸ ⁸
      2023-03-16
      @RequestBody好像会调用getInputStream()方法,然后获取body的时候使用的request.getReader()方法无法与getInputStream()方法同时使用会输出异常java.lang.IllegalStateException: getInputStream() has already been called for this request

      请问你这个问题是怎么解决的?
      2023-03-16
      回复
登录 后发表内容