Dieser Artikel teilt den spezifischen Code des Java Online Mall -Zahlungsmoduls für Ihre Referenz. Der spezifische Inhalt ist wie folgt
1. Zahlungsvorbereitung
public String paymentPre (httpServletRequest req, httpServletResponse resp) löst ServletException aus, iOException {req.setattribute ("order", ordersservice.load (req.getParameter ("oid")); return "f: /jsps/order/pay.jsp";};}2. Zahlungsmethode
öffentliche String -Zahlung (httpServletRequest req, httpServletResponse) löst ServletException aus, iOException {Properties props = neue Eigenschaften (); props.load (this.getClass (). getClassloader (). getResourceAsStream ("payment.Properties")); /** 1. Erstellen Sie 13 Parameter*/String p0_cmd = "buy"; // Geschäftstyp, fester Wert Kaufen String p1_merid = props.getProperty ("p1_merid"); // Der Geschäftszahlencode, die eindeutige Identifizierung in yibao string p2_order = req.getParameter ("OID")///order coces cocing = ". p4_cur = "cny"; // Handelswährung, fester Wert cny String p5_pid = ""; // Produktname String p6_pcat = ""; // Produkttyp String p7_pdesc = ""; // Produktbeschreibung String p8_url = props.getProperty ("p8_urll"). String p9_saf = ""; // Versandadresse String pa_mp = ""; // erweiterte Information String pd_frpid = req.getParameter ("yh"); // Zahlungskanal String Pr_NeedResponse = "1"; // Antwortmechanismus, fester Wert 1/ * * 2. Die Berechnung von HMAC * 13 Parameter. keyValue = props.getProperty ("keyValue"); String hmac = paymentUtil.buildHMAC (p0_cmd, p1_merid, p2_order, p3_amt, p4_cur, p5_pid, p6_pcat, p7_pdesc, p8_url, p9_saf, pd_frpid, pr_needressponse, keyvalue); /** 3. Umleiten Sie sich in Yibaos Zahlungsgateway*/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 zurückgeben;}3. Feedback -Methode
Wenn die Zahlung erfolgreich ist, wird Yibao auf zwei Arten darauf zugreifen:
1. Führen Sie den Browser des Benutzers, um sich umzuleiten (wenn der Benutzer den Browser schließt, kann er nicht in der Lage sein, darauf zugreifen)
2. Der Server von Yibao greift diese Methode mithilfe der Punkt-zu-Punkt-Kommunikation auf. (Sie müssen dem Erfolg etwas zurückgeben, andernfalls wird der Yibao -Server diese Methode weiter aufgerufen.)
public String zurück (httpServletRequest req, httpServletResponse) löst ServletException aus, iOException { /** 1. 12 Parameter erhalten* / 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. Get keyValue */ Properties props = neue Eigenschaften (); props.load (this.getClass (). getClassloader (). getResourceAsStream ("payment.Properties")); String keyValue = props.getProperty ("keyValue"); / * * 3. Rufen Sie die Verifizierungsmethode von Paymentutil auf, um die Identität des Anrufers zu überprüfen bool = paymentutil.verifyCallback (hmac, p1_merid, r0_cmd, r1_code, r2_trxid, r3_am, r4_cur, r5_pid, r6_order, r7_uid, r8_mp, r9_btype, keyValue); if (! bool) {req.setAttribute ("Code", "Fehler"); req.setattribute ("msg", "ungültige Signatur, Zahlung fehlgeschlagen! (Sie sind keine gute Person)"); return "f: /jsps/msg.jsp"; } if (r1_code.equals ("1") {orderservice.UpDatestatus (r6_order, 2); if (r9_bType.equals ("1")) {req.setattribute ("Code", "Erfolg"); req.setattribute ("msg", "Herzlichen Glückwunsch, Zahlung ist erfolgreich!"); return "f: /jsps/msg.jsp"; } else if (r9_bType.equals ("2")) {resp.getWriter (). print ("Erfolg"); }} return null;}4.Pay.jsp
<%@ page Language = "java" import = "java.util. Transitional // en "> <html> <Head> <title> pay.jsp </title> <meta http-äquiv =" pragma "content =" no-cache "> <meta http-äquiv =" cache-control "content =" no-cache "> <meta http-äxiv =" content "content =" 0 "0"> <meta http-äquiv content = "keyword1, keyword2, keyword3"> <meta http-äquiv = "Beschreibung" content = "Dies ist meine Seite"> <!-<link rel = "stylesheet" type = "text/css" href = "styles.css">-> 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() { $("img").click(function() { $("#" + $ (this) .attr ("name")). attr ("geprüft", true); methode = "post" id = "Form1" target = "_ top"> <Eingabe type = "Hidden" name = "method" value = "payment"/> <Eingabe type = "Hidden" name = "oid" value = "$ {order.oid}"/> <div> <div> <div> <div> <divbod style = "margin-left: 20px;" <input 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 = '/banka/icbc.bmp'/>/>/> <input id ="/> <input "/> <input"/> <input "/> <input id =" type = "radio" name = "yh" value = "cmbchina-net-b2c"/> <img name = "cmbchina-net-b2c" align = "Middle" src = "<c: url value = '/bank_img/cmb.bmp'/"/> <Eingabe id = abc-net-b2 cmb.bmp '/> "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-b2c"/iMg name = "yh" value = "ccb-b2c"/iMg-name = "yh" value = "ccb-b2c"/iMg name = "yh" value = "ccb-b2c"/iMg name = "yh" cres "cc" ccb-b-b2c "/iMg name =" yh "c" cc "ccb-b2c"/iMg name = "yh" c "ccb-b-b2c"/iMg " Align = "Middle" src = "<c: url value = '/bank_img/ccb.bmp' //> </div> <div style =" margin-bottom: 20px; src = "<c: url 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. " 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/bank/cib.bmp' // 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 id="NJCB-NET-B2C" type="radio" name="yh" 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; 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="radio" name="yh" value="CEB-NET-B2C"/> <img name = "ceb-net-b2c" align = "Middle" src = "<c: url value = '/bank_img/guangda.bmp' ///"/> <input id = "boc-net-b2c" type = "radio" name = "yh" value = "boc-net-b2c"/> <img name = "boc-b2c" 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/pingan. style = "margin-bottom: 20px;"> <input id = "cbhb-net-b2c" type = "radio" name = "yh" value = "cbhb-b2c"/> <img name = "cbhb-net-b2c" align = "middle" src = "<c: url value = 'bank/ban_img/bh.bm 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="NBCB-NET-B2C" type="radio" name = "yh" value = "nbcb-net-b2c"/> <img name = "nbcb-net-b2c" align = "Middle" src = "<c: url value = '/bankit_img/ningbo.bmp' ////"/> <Eingabe id = "ecitic-b2c" type "type <img name = "ecitic-net-b2c" align = "Middle" src = "<c: url value = '/bank_img/zx.bmp' ///"/> </div> <div style = "margin-bottom: 20px;" 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" align="middle" 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="middle" src="<c:url 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 =" //l value = '/bank/bank/bank/bank/bank/bank/bank/bank//bank/bank/bank/bank/bank/bank/bank/bank/bank/bank/bank/bank/bank/bank/shpd. <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-bm/post.bmp- //"//input ='/bank/post.bmp- // "/"/input = '/bank/post.bmp-/// type = "radio" name = "yh" value = "bjrcb-net-b2c"/> <img name = "bjrcb-net-b2c" align = "Middle" src = "<c: url value = '/bank_img/peijingnong.bmp' //"/"/input id =" hxb-b2c "type" type ". value = "hxb-net-b2c"/> <img name = "hxb-net-b2c" align = "Middle" src = "<c: url value = '/bank_img/hx.bmp' ///"/> <Eingabe id = "cz-net-b2c" type = "radio" name = "yh" yh "cz-b2C" cz "cz-b2". Align = "Middle" src = "<c: url value = '/bank_img/zheshang.bmp' /////// Div> </div> <div style =" margin: 40px; "> <a href =" javascript: void $ ('#Form1'.Zahlung.Properties
p1_merid = 10001126856KeyValue = 69CL522AV6Q613II4W6U8K6XUW8VM1N6BFGYV769220IUYE9U37N4Y7RI4PLP8_URL = HTTP/: // localHost/: 8080/ordentlich/ordentlich/ordnungsgemäßen/: // localHost/: 8080/ordentlich/ordentlich/ordentlich/ack
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.