读书人

支付宝接口集成的有关问题

发布时间: 2013-09-11 17:59:59 作者: rapoo

支付宝接口集成的问题
alipayto.jsp文件是参数的修改,demo里面是:

Java code
//必填参数//        UtilDate date = new UtilDate();//调取支付宝工具类生成订单号        //请与贵网站订单系统中的唯一订单号匹配        String out_trade_no = date.getOrderNum();        //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。        String subject = new String(request.getParameter("subject").getBytes("ISO-8859-1"),"utf-8");        //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里        String body = new String(request.getParameter("alibody").getBytes("ISO-8859-1"),"utf-8");        //订单总金额,显示在支付宝收银台里的“应付总额”里        String price = new String(request.getParameter("total_fee").getBytes("ISO-8859-1"),"utf-8");



我修改成为:[/code]

Java code
//必填参数//        UtilDate date = new UtilDate();//调取支付宝工具类生成订单号        //请与贵网站订单系统中的唯一订单号匹配        String out_trade_no = new String(request.getParameter("order_no").getBytes("ISO-8859-1"),"utf-8");        //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。        String subject = new String(request.getParameter("订单号:"+"order_no").getBytes("ISO-8859-1"),"utf-8");        //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里        String body = new String(request.getParameter("").getBytes("ISO-8859-1"),"utf-8");        //订单总金额,显示在支付宝收银台里的“应付总额”里        String price = new String(request.getParameter("order_total").getBytes("ISO-8859-1"),"utf-8");


本地测试运行出错,还出现乱码,哪位大虾知道什么原因呢?以下为报错信息:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /alipayto.jsp at line 42

39:
40: UtilDate date = new UtilDate();//璋浠宸ュ绫荤㈠?
41: //璇蜂璐电绔㈠绯荤涓涓?㈠峰
42: String out_trade_no = new String(request.getParameter("order_no").getBytes("ISO-8859-1"),"utf-8");
43: //璁㈠О锛绀哄浠堕伴绉扳?剧ずㄦ浠氦$绉扳?琛ㄩ?
44: String subject = new String(request.getParameter("璁㈠?"+"order_no").getBytes("ISO-8859-1"),"utf-8");
45: //璁㈠堪㈠璇?璁㈠澶敞锛绀哄浠堕伴杩扳??


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



[解决办法]
怀疑是你转换字符编码出错。
你把详细出错信息贴出来。
[解决办法]
探讨
我想是request.getParameter("order_no")这个参数为null造成的。
第42行之前打印一句:System.out.println(request.getParameter("order_no"));看是不是打印出了null

[解决办法]
根本原因不是乱码,
而且空指针异常

request.setCharacterEncoding("UTF-8");
[解决办法]
Java code
java.lang.NullPointerExceptionorg.apache.jsp.alipayto_jsp._jspService(alipayto_jsp.java:99)
------解决方案--------------------


responsetTxt不为true,说明你自己生成的签名结果mysign与获得的签名结果sign不一致,你将两个字符串全部打印出来,看看差别在什么地方,有可能是乱码引起的.
我的异常网推荐解决方案:An exception occurred processing JSP page,http://www.myexception.cn/j2se/33144.html
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html

读书人网 >Java Web开发

热点推荐