2019-04-19

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence

        at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:217)

        at java.security.KeyFactory.generatePrivate(KeyFactory.java:372)

        at com.bjev.pay.alipay.sign.RSA.sign(RSA.java:32)

        at com.bjev.pay.handler.AliAppPay.getSign(AliAppPay.java:173)

        at com.bjev.pay.handler.AliAppPay.doOnMobilePay(AliAppPay.java:146)

        at com.bjev.pay.handler.DefaultPayHandler.onMobilePay(DefaultPayHandler.java:70)

        at com.bjev.pay.service.impl.PayServiceImpl.onPay(PayServiceImpl.java:138)

        at com.bjev.pay.service.impl.PayServiceImpl.onMobilePay(PayServiceImpl.java:81)

        at com.bjev.pay.service.impl.PayServiceImpl$$FastClassByCGLIB$$6c0816b4.invoke()

        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)

        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

        at com.bjev.pay.service.impl.PayServiceImpl$$EnhancerByCGLIB$$d3dd9919.onMobilePay()

        at com.bjev.tsl.pay.controller.PayAction.onMobilePay(PayAction.java:189)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:606)

        at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)

        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)

        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)

        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)

        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)

        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)

        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)


在接入支付宝支付功能的时候出现如上错误

原因:支付宝应用私钥没有进行pkcs8编码,

解决方案:使用支付宝官方的公钥私钥生成工具中(\RSA签名验签工具windows_V1.4\RSA签名验签工具)中的格式转换功能进行对私钥转换

你可能感兴趣的:(2019-04-19)