В этой статье используется конкретный код модуля платежного мода Java Online Mall для вашей ссылки. Конкретный контент заключается в следующем
1. Подготовка оплаты
public String Paymentpre (httpservletrequest req, httpservletresponse resp) бросает Servletexception, ioException {req.setattribute («Заказ», orderservice.load (req.getParameter («OID»))); вернуть "f: /jsps/order/pay.jsp";}2. Метод оплаты
Общедоступная строковая платеж (httpservletrequest req, httpservletresponse resp) бросает Servletexception, ioException {Properties props = new Properties (); props.load (this.getClass (). getClassloader (). getResourCeasStream ("PAYTER.Properties")); /** 1. Подготовка 13 параметров*/string p0_cmd = "buy"; // Тип бизнеса, фиксированное значение купить строку p1_merid = props.getproperty ("p1_merid"); // Код бизнес -номера, уникальная идентификация в строке yibao P2_Order = req.getParameter ("OID"); // Строка кода заказа P3_AMT = "0.0101111111111 гг. p4_cur = "cny"; // торговая валюта, фиксированное значение cny string p5_pid = ""; // Название продукта строка p6_pcat = ""; // тип продукта string p7_pdesc = ""; // Описание продукта Строка p8_url = props.getproperty ("p8_url"); // После успешного платежа. String p9_saf = ""; // Строка адреса перевозки string pa_mp = ""; // Строка расширенной информации pd_frpid = req.getParameter ("yh"); // Строка канала платеж keyvalue = props.getProperty ("keyvalue"); String hmac = photographutil.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_needressonse, keevalue); /** 3. Перенаправление в платежный шлюз Yibao*/stringBuilder SB = new StringBuilder ("https://www.yeepay.com/app-merchant-proxy/node"); sb.append ("?"). Append ("p0_cmd ="). Append (p0_cmd); sb.append ("&"). Append ("p1_merid ="). Append (p1_merid); sb.append ("&"). Append ("p2_order ="). Append (p2_order); sb.append ("&"). Append ("p3_amt ="). Append (p3_amt); sb.append ("&"). Append ("p4_cur ="). Append (p4_cur); sb.append ("&"). Append ("p5_pid ="). Append (p5_pid); sb.append ("&"). Append ("p6_pcat ="). Append (p6_pcat); sb.append ("&"). Append ("p7_pdesc ="). Append (p7_pdesc); sb.append ("&"). Append ("p8_url ="). Append (p8_url); SB.Append ("&"). Append ("p9_saf ="). Append (P9_SAF); sb.append ("&"). Append ("pa_mp ="). Append (pa_mp); sb.append ("&"). Append ("pd_frpid ="). Append (pd_frpid); sb.append ("&"). Append ("pr_needresponse ="). Append (pr_needresponse); sb.append ("&"). Append ("hmac ="). Append (HMAC); Resp.sendredirect (sb.toString ()); вернуть null;}3. Метод обратной связи
Когда платеж будет успешным, Yibao будет получить к нему доступ двумя способами:
1. направляйте браузер пользователя в перенаправление (если пользователь закрывает браузер, он не сможет получить доступ к этому)
2. Сервер Yibao будет получить доступ к этому методу, используя связь с точки зрения. (Вы должны вернуть успех, в противном случае сервер Yibao продолжит называть этот метод)
public String Back (httpservletrequest req, httpservletresponse resp), бросает Servletexception, ioException { /** 1. Получить 12 параметров* / string p1_merid = req.getParameter ("p1_merid"); String r0_cmd = req.getParameter ("r0_cmd"); String r1_code = req.getParameter ("r1_code"); String r2_trxid = req.getParameter ("r2_trxid"); String r3_amt = req.getParameter ("r3_amt"); String r4_cur = req.getParameter ("r4_cur"); String r5_pid = req.getParameter ("r5_pid"); String r6_order = req.getParameter ("r6_order"); String r7_uid = req.getParameter ("r7_uid"); String r8_mp = req.getParameter ("r8_mp"); String r9_btype = req.getParameter ("r9_btype"); String hmac = req.getParameter ("hmac"); / * * 2. Получить keyvalue */ properties props = new Properties (); props.load (this.getClass (). getClassloader (). getResourCeasStream ("PAYTER.Properties")); String keyvalue = props.getProperty ("keyvalue"); / * * 3. Метод проверки вызова платежа для проверки идентификации вызывающего абонента *> Если проверка не сбои: Сохраните сообщение об ошибке и перенаправьте его в msg.jsp *> Если проверка проходит: * * Определить, метод доступа перенаправлен или точечный, если перенаправлено * изменить статус порядка, сохранить статус «Сохраните успешную информацию». bool = paymentutil.verifycallback (hmac, p1_merid, r0_cmd, r1_code, r2_trxid, r3_amt, r4_cur, r5_pid, r6_order, r7_uid, r8_mp, r9_btype, keyvalue); if (! bool) {req.setattribute ("code", "error"); req.setattribute («msg», «неверная подпись, оплата не удалась! (Вы не хороший человек)»); вернуть "f: /jsps/msg.jsp"; } if (r1_code.equals ("1")) {orderservice.updatestatus (r6_order, 2); if (r9_btype.equals ("1")) {req.setattribute ("code", "успех"); req.setattribute («MSG», «Поздравляю, оплата успешна!»); вернуть "f: /jsps/msg.jsp"; } else if (r9_btype.equals ("2")) {resp.getWriter (). print ("успех"); }} return null;}4. Play.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "gbk"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <! doctpe html public "//w3c // dtd html htm.01. Transitional//EN"><html> <head> <title>pay.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" Content = "Keyword1, Keyword2, Keyword3"> <meta http-equiv = "description" content = "Это моя страница"> <!-<link rel = "stylesship" type = "text/css" href = "styles.css">-> <link rel = "stylesheet" type = "css" href = " value = '/jss/css/order/pay.css'/> "> <script type =" text/javascript "src =" <c: url value = '/jquery/jquery-1.5.1.js'/> "> </script> <script type =" text/javascript "> $ () ($" ($ function ($ function (). $ (this) .attr ("name")). attr ("cherced", true); method = "post" id = "form1" target = "_ top"> <input type = "hidden" name = "method" value = "платеж"/> <input type = "hidden" name = "oid" value = "$ {order.oid}"/> <div> <div> select online bank </div> <div style = margin-left: 20px; id = "ICBC-Net-B2C" type = "radio" name = "yh" value = "icbc-net-b2c" checked = "checked"/> <img name = "icbc-net-b2c" align = "middle" src = "<c: url value = '/bank_img/icbc.bmp'/>"/> <input ud = "cmbn-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-net-ном name="yh" value="CMBCHINA-NET-B2C"/> <img name="CMBCHINA-NET-B2C" align="middle" src="<c:url value='/bank_img/cmb.bmp'/>"/> <input id="ABC-NET-B2C" type="radio" name="yh" value="ABC-NET-B2C"/> <img name = "abc-net-b2c" align = "middle" src = "<c: url value = '/bank_img/abc.bmp'/>"/> <input id = "ccb-net-b2c" type = "radio" name = "yh" value = "ccb-net-b2c"/> <img name = "ccb-net-b2c" ccb-net-b2c "/> <img name =" ccb-net-b2c "ccb-net-b2c"/> <img name = "ccb-net-b2c" ccb-net-b2c "/> <img name =" ccb-net-b2c ". value = '/bank_img/ccb.bmp' ///> </div> <div style = "margin-bottom: 20px;"> <input id = "bccb-net-b2c" type = "name =" yh "value =" bccb-net-b2c "/> <img name =" bccb-net-b2c "align =" crcl "crcl" <: "img name =" bccb-net-b2c "align =" crcl "/> <img name =" bccb-net-b2c "<:" urcl-net-b2c "/> <img name =" bccb-net-b2c ". value = '/bank_img/bj.bmp' /// input id = "boco-net-b2c" type = "radio" name = "yh" value = "boco-net-b2c"/> <img name = "boco-net-b2c" align = "middle" src = "<c: url value = '/bank_img/bcc. id = "boco-net-b2c"/> <input id = "cib-net-b2c" type = "radio" name = "yh" value = "cib-net-b2c"/> <img name = "cib-net-b2c" align = "middle" src = "<c: url value = '/bank_img/cib.bmp' ///neply id =" c: b2c net "/bank_img/cib.bmp '/// into". type = "radio" name = "yh" value = "njcb-net-b2c"/> <img name = "njcb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/nanjing.bmp' //// input id =" input = "njcb-net-b2c" type = "name" = "hame" = "hame" = "hame" = "hame" = "y namh" = "y namh" = "y namh" = " value = "njcb-net-b2c"/> <img name = "njcb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/nanjing.bmp' ///// indiv> <div style =" margin-bottom: 20px;> <input id = "cmbc net-b2c" = "hame" = "hame" = "hame" = "? value = "cmbc-net-b2c"/> <img name = "cmbc-net-b2c" align = "middle" src = "<c: url value = '/bank_img/cmbc.bmp' //"/> <input id = "ceb-net-b2c" type = "name =" yh "=" ceb-net-b2c "/> <iDe-b2c"/> <iMg "/> <iMg"/> <img "/> <img"/> <img "/> <ide-b2c name = "ceb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/guangda.bmp' ///"/> <input id = "boc-net-b2c" type = "name =" yh "value =" boc-net-b2c "/> <img name =" boc-net-b2c "align =" cr alinc = "cr-net b2c =" cr align = "align =" cr-net neme = "align =" cr-net-b2c "/" <img = "<img =" <iMg = "<iMg =". value = '/bank_img/bc.bmp' /// "/> <input id =" pinganbank-net "type =" radio "name =" yh "value =" pinganbank-net "/> <img name =" pinganbank-net "align =" middle "src =" <c: url value = '/bank_img/pingan.bm. style="margin-bottom: 20px;"> <input id="CBHB-NET-B2C" type="radio" name="yh" value="CBHB-NET-B2C"/> <img name="CBHB-NET-B2C" align="middle" src="<c:url value='/bank_img/bh.bmp'//////input id = "hkbea-net-b2c" type = "radio" name = "yh" value = "hkbea-net-b2c"/> <img name = "hkbea-net-b2c" align = "middle" src = "<c: url value = '/bank_img/dy.bmp' ///"/> "/input id =" nbc.-net-b2c "/"/"/>"/input id = "nbc-net-b2c"/"/"/> "/input id =" nbc-net-b2c "/"/"/>"/"/input id =" nbc.-net-b2c "/"/"/>"/"/"/"." name = "yh" value = "nbcb-net-b2c"/> <img name = "nbcb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/ningbo.bmp' ////"/> <input ud = "ecitic-net-b2c" type = "vame =" value = "ecit-b2c"; <img name = "ecitic-net-b2c" align = "middle" src = "<c: url value = '/bank_img/zx.bmp' ///"/> </div> <div style = "margin-bottom: 20px;"> <input id = "sdb-net-b2c" type = "radio" value = "value =" sdb-net-b2c "/value =" value = "sdb-net-b2c"/"value =" sdb-net-b2c ". name = "sdb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/sfz.bmp' ///"/> <input id = "gdb-net-b2c" type = "radio" name = "yh" value = "gdb-net-b2c"/> <img name = "gdb-net-b2c" gdb-net-b2c "/> <img name =" gdb-net-b2c "gdb-net-b2c"/> <img name = "gdb-net-b2" " src = "<c: url value = '/bank_img/gf.bmp' ///"/> <input id = "shb-net-b2c" type = "radio" name = "yh" value = "shb-net-b2c"/> <img name = "shb-net-b2c" align = "src =" value = '/bank_img/sh.bmp' /// "/> <input id =" spdb-net-b2c "type =" radio "name =" yh "value =" spdb-net-b2c "/> <img name =" spdb-net-b2c "align =" middle "src =" <c: url value = '/bank_im_img/shpd.bmp'////rip '//rip'/rip '//rid <div style = "margin-bottom: 20px;"> <input id = "post-net-b2c" type = "radio" name = "yh" value = "post-net-b2c"/> <img name = "post-net-b2c" align = "middle" src = "<c: url value = '/bank_img/post.bmp'//>"/into val type="radio" name="yh" value="BJRCB-NET-B2C"/> <img name="BJRCB-NET-B2C" align="middle" src="<c:url value='/bank_img/beijingnongshang.bmp'//"/> "/input id="HXB-NET-B2C" type="radio" name="yh" value = "hxb-net-b2c"/> <img name = "hxb-net-b2c" align = "middle" src = "<c: url value = '/bank_img/hx.bmp' ///"/> <input id = "cz-net-b2c" type = "name =" yh "value =" cz-net-b2c "/> <ime-b2c"/> <-net-b2c "/> <ime-b2c". align = "middle" src = "<c: url value = '/bank_img/zheshang.bmp' ///////// Div> </div> <div style =" margin: 40px; "> <a href =" javascript: void $ ('#form1'). Pred (); "> Next </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </hore>Оплата. Прозрачные
p1_merid = 10001126856 KeyValue = 69CL5222AV6Q613II4W6U8K6XUW8VM1N6BFGYV769220IUYE9U37N4Y7RI4PLP8_URL = http/: // Local/: 8080/orderserv?
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.