yankYuki 2018-04-12 04:00 采纳率: 0%
浏览 8608
已结题

支付宝java服务端 测试报错 大神来救

根本不理解支付宝提供的demo 从网上使用别人的源码

String orderStr="";
try {
Map orderMap = new LinkedHashMap(); // 订单实体
Map bizModel = new LinkedHashMap(); // 公共实体
/****** 2.商品参数封装开始 *****/ // 手机端用
// 商户订单号,商户网站订单系统中唯一订单号,必填
orderMap.put("out_trade_no", "100000");
// 订单名称,必填
orderMap.put("subject", "***支付");
// 付款金额,必填
orderMap.put("total_amount", String.valueOf(10000));
// 销售产品码 必填
orderMap.put("product_code", "QUICK_WAP_PAY");
/****** --------------- 3.公共参数封装 开始 ------------------------ *****/ // 支付宝用
// 1.商户appid
bizModel.put("app_id", AlipayConfig.APPID);
// 2.请求网关地址
bizModel.put("method", AlipayConfig.URL);
// 3.请求格式
bizModel.put("format", AlipayConfig.FORMAT);
// 4.回调地址
bizModel.put("return_url", AlipayConfig.notify_url);
// 5.私钥
bizModel.put("private_key", AlipayConfig.private_key);
// 6.商家id
bizModel.put("seller_id", AlipayConfig.partner);
// 7.加密格式
bizModel.put("sign_type", AlipayConfig.sign_type + "");
/****** --------------- 3.公共参数封装 结束 ------------------------ *****/
// 实例化客户端
AlipayClient client = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID,
AlipayConfig.private_key, AlipayConfig.FORMAT, AlipayConfig.input_charset,
AlipayConfig.ali_public_key, AlipayConfig.sign_type);
// 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest ali_request = new AlipayTradeAppPayRequest();
// SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
// model.setPassbackParams(URLEncoder.encode((String)orderMap.get("body").toString()));;
// //描述信息 添加附加数据
// model.setBody(orderMap.get("body")); //商品信息
model.setSubject(orderMap.get("subject")); // 商品名称
model.setOutTradeNo(orderMap.get("out_trade_no")); // 商户订单号(自动生成)
model.setTotalAmount(orderMap.get("total_amount")); // 支付金额
model.setProductCode(orderMap.get("product_code")); // 销售产品码
model.setSellerId(AlipayConfig.partner); // 商家id
ali_request.setBizModel(model);
ali_request.setNotifyUrl(AlipayConfig.notify_url); // 回调地址
AlipayTradeAppPayResponse responses = client.sdkExecute(ali_request);
orderStr = responses.getBody();
System.err.println(orderStr); // 就是orderString 可以直接给客户端请求,无需再做处理
} catch (Exception e) {
e.printStackTrace();
}

     return orderStr;

            AlipayConfig是配置文件 包含密钥之类的 报错为

            com.alipay.api.AlipayApiException: RSAcontent = alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2018030202299464&biz_content={"out_trade_no":"100000","product_code":"QUICK_WAP_PAY","seller_id":"2088031415344595","subject":"***支付","total_amount":"10000"}&charset=utf-8&format=json&method=alipay.trade.app.pay&sign_type=RSA2&timestamp=2018-04-12 11:55:38&version=1.0; charset = utf-8
at com.alipay.api.internal.util.AlipaySignature.rsa256Sign(AlipaySignature.java:141)
at com.alipay.api.internal.util.AlipaySignature.rsaSign(AlipaySignature.java:102)
at com.alipay.api.DefaultAlipayClient.getRequestHolderWithSign(DefaultAlipayClient.java:323)
at com.alipay.api.DefaultAlipayClient.sdkExecute(DefaultAlipayClient.java:163)
at com.yinuoapp.controller.Alipay00200009Controller.alipay(Alipay00200009Controller.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.yinuo.server.Filters.doFilter(Filters.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Caused by: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error
at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:217)
at java.security.KeyFactory.generatePrivate(KeyFactory.java:372)
at com.alipay.api.internal.util.AlipaySignature.getPrivateKeyFromPKCS8(AlipaySignature.java:202)
at com.alipay.api.internal.util.AlipaySignature.rsa256Sign(AlipaySignature.java:123)
... 48 more
Caused by: java.security.InvalidKeyException: IOException : DER input, Integer tag error
at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:351)
at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:356)
at sun.security.rsa.RSAPrivateCrtKeyImpl.(RSAPrivateCrtKeyImpl.java:91)
at sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:75)
at sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:316)
at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:213)
... 51 more
根本不懂 求大神救我

  • 写回答

12条回答 默认 最新

  • 「已注销」 2018-04-12 04:28
    关注

    签名错了,你的RSA密钥是怎么生成的?

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大