首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2013-09-11 
支付宝接口集成的问题alipayto.jsp文件是参数的修改,demo里面是:Java code//必填参数//UtilDate date ne

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

热点排行