在线支付

来源:互联网 发布:负面情绪 知乎 编辑:程序博客网 时间:2024/04/28 13:30

需求:在购物车中点击支付,提交到选择银行支付页面,用到了第三方支付平台。

银行有很多,我们建立的网站需要与各个网站建立关联,那么就需要针对每一个银行编写不同的程序,代价会很高。而现在的第三方支付平台在专门做与银行交互的工作,我们将任务提交给第三方交易平台做就可以了。

以易宝为例。

 

思路:

1,首先在购物车的页面中点击支付按钮,将当前总价和订单编号提交到servlet,并转发到jsp显示,选择银行。

2,选择后点击提交,会提交到一个servlet中,这个servlet对需要连接第三方支付平台的信息进行了配置,并重定向到第三方支付平台进行付款。

3,第三方支付平台会将请求提交到银行,银行确认支付后将信息反馈给第三方支付平台,第三方支付平台再向商家确认有没有收到支付的货款。

4,交易完成。

 

核心代码:

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//获得参数。String orderId = request.getParameter("orderId");String amount = request.getParameter("amount");String frpId = request.getParameter("frpId");//填写信息。String p0_Cmd = "Buy";String p1_MerId = "10001126856";String p2_Order = orderId;String p3_Amt = amount;String p4_Cur = "CNY";String p5_Pid = "itcast";String p6_Pcat = "";String p7_Pdesc = "";String p8_Url = "http://localhost:8080/day17_ebookstore/servlet/PaySuccessServlet";String p9_SAF = "1";String pa_MP = "";String pd_FrpId = frpId;String pr_NeedResponse = "1";String keyValue = "69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";String hmac = PaymentUtil.buildHmac(p0_Cmd, p1_MerId, p2_Order, p3_Amt, p4_Cur, p5_Pid, p6_Pcat, p7_Pdesc, p8_Url, p9_SAF, pa_MP, pd_FrpId, pr_NeedResponse, keyValue);//工具类//重定向到易寶網站String url = "https://www.yeepay.com/app-merchant-proxy/node?"+"p0_Cmd=" + p0_Cmd +"p1_MerId=" + p1_MerId +"p2_Order=" + p2_Order +"p3_Amt=" + p3_Amt +"p4_Cur=" + p4_Cur +"p5_Pid=" + p5_Pid +"p6_Pcat=" + p6_Pcat +"p7_Pdesc=" + p7_Pdesc +"p8_Url=" + p8_Url +"p9_SAF=" + p9_SAF +"pa_MP=" + pa_MP +"pd_FrpId=" + pd_FrpId +"pr_NeedResponse=" + pr_NeedResponse +"hmac=" + hmac;//重定向response.sendRedirect(url);}


原创粉丝点击