日期:2014-05-17  浏览次数:20741 次

支付宝接口集成的问题
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");