JAVA后台集成支付宝的注意事项,持续更新

本博客主要作用还是记录问题使用,所以就不废话了,直接上问题和解决方案;

环境:tomcat7+win7+jdk1.7+myeclipse10

全局编码:UTF-8

用途:集成支付宝

接口:create_direct_pay_by_user-JAVA-UTF-8

本接口的主要作用是PC网站支付,包含二维码、账号支付;

我遇到了以下两个问题比较头疼:

1:乱码;

2:isSign验证不通过(支付结果总是验证失败);

其实以上两个问题都是由于编码不一致导致的,由于notify_url比如部署在外网,所以我就直接配置好了放服务器上,所以我的请求过程是这样的:

本地请求服务器的alipayapi.jsp,然后在服务器的return_url.jsp中将参数转发回本地;

在alipayapi.jsp中使用了这样的(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8"),作用应该不用我说了,在这里我不论怎么转都是失败的;

最终我将本地的转成"ISO-8859-1"发到服务器,ok,在服务器的入口处乱码问题解决了;

当你打开demo中提到的日志输出,你会发现,整个demo运行结束会输出3次,分别是在收银台(就是alipayapi.jsp)、订单校验(return_url.jsp)、最后一次我也没深究在哪儿输出的,如有更懂得请留言,在此谢过了;

当你第二次输出时responseTxt、 isSign任何一个为false都将验证不通过,究其原因还是因为乱码导致的,而我的解决办法是将上一个出口的编码和下一个入口的编码保持一致;

这应该也算是支付宝程序的BUG吧!

小弟我可能也会有一些出入的,如果问题的,欢迎多多评论哈!

你可能感兴趣的:(集成第三方支付)