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;
这个问题一种可能是因为项目使用的springboot依赖中默认的jackson版本过低,第二种是自定义的jackson版本过低。建议手动更换2.13.4.2版本以上的jackson依赖。官方也给了正确的指示。目前最新wechatpay-apache-httpclient-0.4.9中使用的是2.13.4.2版本的jackson,如果使用sdk的原生校验、解密方法建议升级至高于2.13.4.2版本以上,亲测有效。
微信官方包里封装的方法有些坑,从请求头里拿到的body只能验签成功不能解密,自已用对象接收body又验签不成功且转化为微信封装好的对象实体类接收到的参数总为空
去把wechatpay-apache-httpclient里封装的验签和解密方法复制到自己的项目里,然后如下改造一下,就能验签解密成功
请问你这个问题是怎么解决的?