境外银联demo代码解析

根据文档需要自己配置的内容

支付

  1. path.properties中的地址,还需要修改Tomcat端口为80端口否则报如下错误
    在这里插入图片描述
  2. 上面问题解决以后,现在提交订单会提示缺少必备参数,要参考该文档最下面的附录C.目前是在这里插入图片描述
    这个要让银联那边查出来
<%--自己根据接口文档添加的数据--%>
		<tr>
			<td>
				产品类型
			</td>

			<td>
                    <input type="text" name="ProductType" value="00020004" maxlength="8"> &nbsp;(4位数字,00020004=Secure Pay香港子公司)
            </td>
		</tr>
//商户发送的报文key值中添加ProductType
	String params = "TranReserved;MerBgUrl;BusiType;CurryNo;MerSplitMsg;MerId;AccessType;AcqCode;SplitType;Signature;TranDate;TranTime;OriTranDate;TranType;ProductType;Version;MerResv;SplitMethod;MerOrderNo;OriOrderNo;RefundAmt";

  1. 收单机构号不必填写
  2. 交易币种目前是写USD

退款

退款功能中的退款订单号是自动生成的,不需要管
在这里插入图片描述

  • 以下两个,就是订单提交时间
    在这里插入图片描述
  • 原支付交易订单号就是,点支付时候自动生成的订单号
    在这里插入图片描述

查询

  1. demo中多了交易时间会导致 签名验证失败,所以不要填写交易时间
    在这里插入图片描述
  2. 出现以下错误是因为查询要加ip白名单的,这个要联系银联的运营帮忙加下,自己的公网ip在百度上就可以查到
    在这里插入图片描述
  3. 订单号是支付时候生成的订单号

			/**TODO 转发操作,地址是requestDispatcherPath的值
			 * requestDispatcherPath这个一个变量,上面定义了变量的值,这个值是根据dispatchMap.get(tranType)方法
			 * dispatchMap.get用来通过key拿到value值,key值是根据页面传过来的tranType
			 */
request.getRequestDispatcher(requestDispatcherPath).forward(request, response);

第一种是request.getRequestDispatcher().forward(request,response):
1、属于转发,也是服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求,前后页共用一个request,可以通过此来传递一些数据或者session信息,request.setAttribute()和request.getAttribute()。
2、在前后两次执行后,地址栏不变,仍是当前文件的地址。
3、不能转向到本web应用之外的页面和网站,所以转向的速度要快。
4、URL中所包含的“/”表示应用程序(项目)的路径。


b2cPay.jsp

  • 是传给银联的,这里可以在客户端界面只显示订单号,订单金额,交易时间,交易日期,交易币种
  • 点击 “提交订单”,会跳转到银联支付页面,当前页也会通过SignServlet转发到b2cPaySend.jsp页面,地址栏会显示的是signServlet.do

b2cPaySend.jsp

  • 这个页面是如果浏览器没有弹出支付页面时候的操作
  • 点"提交订单"会根据form的action值跳转
<%
	String pay_url = PathUtil.getValue("pay_url");
%>
<form name="payment" action="<%= pay_url %>" method="POST" target="_blank">

会通过PathUtil获取path.properties中的pay_url 的值

b2cPayResult.jsp

发布了49 篇原创文章 · 获赞 12 · 访问量 2833

猜你喜欢

转载自blog.csdn.net/u010017876/article/details/103532170
今日推荐