binarywang / weixin-java-miniapp-demo

基于Spring Boot 和 WxJava 实现的微信小程序Java后端Demo
1.32k stars 669 forks source link

有一个在接收客服消息的时候的错误 #26

Closed StayWJ closed 4 years ago

StayWJ commented 4 years ago

WxPortalController里的post方法是直接复制过去的,但是在接收消息(小程序发了客服消息)的时候报了这个错误,但是好像src/main/java/org/apache/commons/codec/binary/Base64.java源码是有更改的,我蒙了。。 https://github.com/apache/commons-codec/commit/a0447626dcffd6bcd4decd13e4dac1da4661d6f7

java.lang.IllegalArgumentException: Last encoded character (before the paddings if any) is a valid base 64 alphabet but not a possible value
    at org.apache.commons.codec.binary.Base64.validateCharacter(Base64.java:798)
    at org.apache.commons.codec.binary.Base64.decode(Base64.java:477)
    at org.apache.commons.codec.binary.BaseNCodec.decode(BaseNCodec.java:412)
    at org.apache.commons.codec.binary.BaseNCodec.decode(BaseNCodec.java:395)
    at org.apache.commons.codec.binary.Base64.decodeBase64(Base64.java:694)
    at cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils.<init>(WxMaCryptUtils.java:28)
    at cn.binarywang.wx.miniapp.bean.WxMaMessage.fromEncryptedJson(WxMaMessage.java:179)
    at com.wwj.controller.WxPortalController.post(WxPortalController.java:76)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
StayWJ commented 4 years ago
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.9</version>
</dependency>

加了这个依赖解决了