Artikel ini membagikan kode spesifik modul pembayaran mal Java Online untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
1. Persiapan pembayaran
Public String PaymentPre (httpservletrequest req, httpservletResponse resp) melempar servletException, ioException {req.setAttribute ("pesanan", orderservice.load (req.getParameter ("oid"))))); return "f: /jsps/order/pay.jsp";}2. Metode Pembayaran
pembayaran string publik (httpservletrequest req, httpservletResponse resp) melempar servletException, ioException {properties props = new properties (); props.load (this.getClass (). getClassLoader (). getResourCeAsstream ("payment.properties")); /** 1. Mempersiapkan 13 parameter*/string p0_cmd = "buy"; // jenis bisnis, nilai tetap membeli string p1_merid = props.getproperty ("p1_merid"); // kode nomor bisnis, identifikasi unik dalam yibao string p2_order = req.getParameter ("oid");/orde; p4_cur = "cny"; // mata uang perdagangan, nilai tetap CNY string p5_pid = ""; // nama produk string p6_pcat = ""; // Jenis produk string p7_pdesc = ""; // Deskripsi Produk P8_URL = props.getproperty ("p8_url"); // setelah pembayaran berhasil. String p9_saf = ""; // alamat pengiriman string pa_mp = ""; // informasi yang diperpanjang string pd_frpid = req.getParameter ("yh"); // Saluran pembayaran string pr_needResponse = "1"; // mekanisme respons yang diperlukan * adalah KEYVALE 1/ * 2. Persalaan HMAC * 13 Paramets Diperlukan * Diperlukan * Paramer yang Diperlukan * Diperlukan * Paramets * Diperlukan * Paramer Paramer * 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, pa_mp, pd_frpid, pr_needs /** 3. Redirect ke gateway pembayaran 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 ()); return null;}3. Metode umpan balik
Ketika pembayaran berhasil, Yibao akan mengaksesnya dengan dua cara:
1. Memandu browser pengguna untuk mengarahkan ulang (jika pengguna menutup browser, ia tidak akan dapat mengakses ini)
2. Server Yibao akan mengakses metode ini menggunakan komunikasi point-to-point. (Anda harus memberikan kembali pada kesuksesan, jika tidak, server YIBAO akan terus memanggil metode ini)
Public String Back (httpservletRequest req, httpservletResponse resp) melempar servletException, ioException { /** 1. Dapatkan 12 parameter* / 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. Dapatkan keyValue */ properti props = properti baru (); props.load (this.getClass (). getClassLoader (). getResourCeAsstream ("payment.properties")); String keyValue = props.getProperty ("KeyValue"); / * * 3. Panggilan Metode Verifikasi Paymentutil untuk memverifikasi identitas penelepon *> Jika verifikasi gagal: simpan pesan kesalahan dan meneruskannya ke msg.jsp *> Jika verifikasi lewat: * * Tentukan apakah metode aksesnya diarahkan ke point-to-point * jika diarahkan ke point: simpan status pesanan, simpan informasi yang berhasil, ke point-to-point * jika point-point * point-point: point-point: simpan status order, simpan informasi yang berhasil, ke point-to-point * point-point * point-point * point-point IT POINT: SIMPU POIN POINT: SIMPAN POIN POINT: SIMPAN POIN POIN POIN POIN POIN POIN POIN POIN POIN POINT * 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", "tanda tangan tidak valid, pembayaran gagal! (Anda bukan orang yang baik)"); return "f: /jsps/msg.jsp"; } if (r1_code.equals ("1")) {orderService.upDatestatus (r6_order, 2); if (r9_btype.equals ("1")) {req.setAttribute ("kode", "sukses"); req.setAttribute ("msg", "ucapan selamat, pembayaran berhasil!"); return "f: /jsps/msg.jsp"; } else if (r9_btype.equals ("2")) {resp.getWriter (). print ("Success"); }} return null;}4.pay.jsp
<%@ page language = "java" import = "java.util.*" pageEncoding = "gbk"%> <%@ taglib awalan = "c" uri = "http://java.sun.com/jsp/jstl/core"%html html public "-// w3c//w3c/w3c/dt 4.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="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link rel="stylesheet" type="text/css" href="<c:url value = '/jss/css/order/pay.css'/> "> <script type =" text/javascript "src =" <c: url value = '/jQuery/jQuery-1.5.1.js'/"> </script> <script =" text/javascript "> $ (function () () {() $ () {() () {() {() {() {() {() {() {() (function) (function () (function () (function () (function () (function) (function" $ (ini) .attr ("name")). attr ("checked", true);});}); </script> </head> <body> <span> <span> Jumlah: </span> <span> $ {order.total} </span> <span> Nomor: $ {order.oid} </span> Method = "POST" ID = "FORM1" Target = "_ Top"> <input type = "tersembunyi" name = "Method" value = "pembayaran"/> <input type = "hidden" name = "oid" value = "$ {order.oid}"/> <v> <v> Pilih perbankan online </Div> <div style = "margin-leefx: 20ps: 20ps = 20px = marmin"; <input id = "icbc-net-b2c" type = "Radio" name = "yh" value = "icbc-net-b2c" checked = "checked"/> <img name = "icbc-net-b2c" align = "midde" src = "<c: url value = '/Bank_Img/icbc.bc.bmp' type = "Radio" name = "yh" value = "cmbchina-net-b2c"/> <img name = "cmbchina-net-b2c" align = "tengah" src = "<c: nilai url = '/bank_img/cmb.bmp'/" "" "" "" " 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" align = "tengah" src = "<c: url value = '/bank_img/ccb.bmp' ///> </div> <div style =" margin-bottom: 20px; "> <input =" bccb-net-b2c "name" name "name" yH "name" yH "yH" YH "yH" name "yH" YH "" YHH "YHH" NAME "YHH" YHH "YHH" YHH "YHH" NAME "" Radio " name="BCCB-NET-B2C" align="middle" 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 value = '/bank_img/bcc.bmp' /// input id = "boco-net-b2c"/> <input id = "cib-net-b2c" type = "radio" name = "yh" value = "cib-net-b2c"/> <img = "cib-net-b2c" align = "sidge" s Middle " value='/bank_img/cib.bmp'///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'////input id = "input id =" njcb-net-b2c "type =" Radio "name =" yh "value =" njcb-net-b2c "/> <img name =" njcb-net-b2c "align =" midde "src =" <c: url value = '/Bank_Img/nanjing.bmp'; <input id = "cmbc-net-b2c" type = "Radio" name = "yh" value = "cmbc-net-b2c"/> <iMg name = "cmbc-net-b2c" align = "middle" src = "<c: url value = '/bank_img/cmbc.bmp Name = "yh" value = "ceb-net-b2c"/> <img name = "ceb-net-b2c" align = "tengah" src = "<c: nilai url = '/bank_img/guangda.bmp' ///"/> <input = "boc-net-b2c" name = "name =" yoHH "name" name "name" name "nead =" YoT = "YOLE" NOVE "NADE" NOVE "NOVE" NADE = "BOC-NET-NET-B2C" Name = "BOC-NET-B2C" Align = "Middle" Src = "<C: URL Value = '/Bank_IMG/BC.BMP' ///"/> <input id = "pinganbank-net" type = "Radio" name = "yh" value = "pinganbank-net"/<radio "name =" yh "value =" pinganbank-net "/<IMG name =" pingor = "ping =" saTon "sing =" name = "pingon" sing = "name =" pingan = "name =" pingan = "name =" pingan = "name =" pingan = "pingan =" name = "yh" pinganbank-net "/> value = '/bank_img/pingan.bmp' /// div> <div style = "margin-bottom: 20px;"> <input id = "cbhb-net-b2c" type = "radio" name = "yh" value = "cbhb-net-b2c"/<iMg nama = "cbhb-net-b2 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 =" nbcb-net-b2c "type =" Radio "name =" yh "value =" nbcb-net-b2c "/> <img name =" nbcb-net-b2c "align =" midde "src =" <c: url value = '/bank_img/ningbo.bmp type = "Radio" name = "yh" value = "ecitic-net-b2c"/> <img name = "ecitic-net-b2c" align = "tengah" src = "<c: nilai url = '/bank_img/zx.bmp' //"/</div> <div style = "margin-bottom: 20px '//" "/</div> <div style =" margin-bottom: 20px' // ""/</div> <div style = "margin-bottom: 20px '//" "/</div> <div style =" margin-bottom: 20px'//"(/div> <div style =" margin-bottom: 20px: 20px; type = "Radio" name = "yh" value = "sdb-net-b2c"/> <img name = "sdb-net-b2c" align = "tengah" src = "<c: nilai url = '/bank_img/sfz.bmp' //" "/> <input id =" gdb-net-b2c "/" yoet-b2c = "y" 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 = "<c: nilai url = '/bank_img/shpd.bmp' ///"/> </div> <div style = "margin-bottom: 20px;"> <input id = "post-net-b2c" type = "Radio" name = "yh" value = "post-net-b2c"/<iMg name = "name =" yh "value =" pasca-net-b2c "/<iMg name =" src = "<c: nilai url = '/bank_img/post.bmp' //"/> "/input id =" bjrcb-net-b2c "type =" radio "name =" yh "value =" bjrcb-net-b2c "/> <" c: c: c: c: c: c: c: c: c: c: c: c: c: c: bjrcb-net-b2c "align =" smg "s: c: c: c: bjrcb-net-b2c" align = "smy =" s: "c: c: c: c: c: c: bjrcb-net-b2c" align = "soul =" s: "c: c: c: c: c: bjrcb-net-b2c" align = "midt 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 =" Radio "name =" yh "value =" cz-net-b2 "/> <img name =" cz-net-b2c "align =" tengah "src =" <c: value = '/Bank'/Bankg/Align = "tengah" src = "<c: nilai url = '/Bank'/Bank. </div> <div style = "margin: 40px;"> <a href = "javascript: void $ ('#form1'). Kirim ();"> Berikutnya </a> </div> </div> </form> </body> </html>pembayaran. Properti
p1_merid = 10001126856KeyValue = 69cl522av6q613ii4w6u8k6xuw8vm1n6bfgyv769220iuye9u37n4y7ri4plp8_url = http/: // localhost/: 8080/order/http/http/: // localhost/: 8080/order/http/http/://localhost/: 8080/order/http?
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.