この記事では、参照用のJavaオンラインモール支払いモジュールの特定のコードを共有しています。特定のコンテンツは次のとおりです
1。支払いの準備
public String PayunePre(httpservletrequest req、httpservletresponse resp)throws servletexception、ioexception {req.setattribute( "order"、ordervice.load(req.getparameter( "oid"))); return "f:/jsps/order/pay.jsp";}2。支払い方法
public Stringの支払い(httpservletrequest req、httpservletresponse rep)servletexception、ioexception {properties props = new Properties(); propss.load(this.getClass()。getClassLoader()。getResourceAsStream( "Payune.Properties")); /** 1。13パラメーターを準備*/文字列P0_cmd = "Buy"; //ビジネスタイプ、固定値購入文字列p1_merid = propsproperty( "p1_merid"); // yibao文字列p2_order = req.getparameter( "oid"); p4_cur = "cny"; //貿易通貨、固定値CNY文字列p5_pid = ""; //製品名String p6_pcat = ""; //製品タイプString p7_pdesc = ""; //製品説明String P8_url = Propsproperty( "P8_url"); // String P9_Saf = ""; //出荷アドレスString Pa_mp = ""; //拡張情報文字列Pd_frpid = req.getParameter( "yh"); //支払いチャネル文字列pr_needResponse = "; //応答メカニズム、固定値1/ * * 2。 props.getProperty( "keyvalue"); String hmac = Payuntutil.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_NEDRESPENSEPHENS、KEYVALUE); /*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は次の2つの方法でアクセスします。
1.ユーザーのブラウザをガイドしてリダイレクトします(ユーザーがブラウザを閉じた場合、彼はこれにアクセスできません)
2。Yibaoのサーバーは、ポイントツーポイント通信を使用してこの方法にアクセスします。 (成功に還元する必要があります。そうしないと、Yibaoサーバーはこの方法を呼び出し続けます)
public string back(httpservletrequest req、httpservletresponse rep)servletexception、ioexception { /** 1。 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");文字列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");文字列r8_mp = req.getParameter( "r8_mp"); string r9_btype = req.getParameter( "r9_btype"); string hmac = req.getParameter( "hmac"); / * *2。KeyValue */ properties props = new Properties(); propss.load(this.getClass()。getClassLoader()。getResourceAsStream( "Payune.Properties"));文字列keyvalue = props.getProperty( "keyvalue"); / * *3。PayineUtilの検証方法を呼び出して、発信者のIDを検証して確認してください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"、 "success"); req.setattribute( "msg"、 "おめでとう、支払いは成功しました!"); "f:/jsps/msg.jsp"を返します。 } else if(r9_btype.equals( "2")){resp.getWriter()。print( "success"); }} nullを返します;}4.pay.jsp
<%@ page Language = "Java" Import = "Java.util。*" pageEncoding = "gbk"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> < 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 = "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 = "href =" <c 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 "> $($" " $(this).attr( "name"))。 method "id =" form1 "ターゲット=" _ top "> <入力タイプ=" hidden "name =" method "value =" pained "/> <input type =" oid name = "oid" value = "$ {order.oid}"/> <div> selectオンライン銀行</div> div> <div-style = "magnid-left:<input ="> <div-left; id = "icbc-net-b2c" type = "radio" name = "yh" value = "icbc-net-b2c" checked "/> <img name =" icbc-net-b2c "align =" middle "src =" <c:c:url value = '/bank_img/icbc.bmp'/> "" cmbchina net = "" cmbchina name = "yh" value = "cmbchina-net-b2c"/> <img name = "cmbchina-net-b2c" align = "middle" src = "<c:url value = '/bank_img/cmb.bmp'/>>" 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 = " value = '/bank_img/ccb.bmp' ///> </div> <div style = "margin-bottom:20px;"> <input id = "bccb-net-b2c" type = "radio" name "yh" value = "bccb-net-b2c"/> <img name = " 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 <c: '/bank_img/bcc.bcc.bcc.bcc.bcc.bck 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' /////////////////// type = "Radio" name = "yh" value = "njcb-net-b2c"/> <img name = "njcb-net-b2c" align = "src =" <c:url value = '/bank_img/nanjing.bmp' /// value = "njcb-net-b2c"/> <img name = "njcb-net-b2c" align = "middle" src = "<c:url value = '/bank_img/nanjing.bmp' /// 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 = "" yh "yh" ceb-net name = "ceb-net-b2c" align = "middle" src = "<c:url value = '/bank_img/guangda.bmp' ///"/>> <input id = "boc-net-b2c" type = "ladio" name "name" name = "yh" value = "boc-net-b2c"/>> <img name = "boc-net" "s." value = '/bank_img/bc.bmp' /// "/> <input id =" pinganbank-net "type =" radio "name" yh "value =" pinganbank-net "/> <img name =" pinganbank-net "align =" middle "src =" <c style = "マージンボトム:20px;"> <input id = "cbhb-net-b2c" type = "radio" yh "value =" cbhb-net-b2c "/> <img name =" cbhb-net-b2c "align =" middle "src =" <c <c: '/bank_img/bh.bmp 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' ///// name = "yh" value = "nbcb-net-b2c"/> <img name = "nbcb-net-b2c" align = "middle" src = "<c:url value = '/bank_img/ningbo.bmp' //// <img name = "ecitic-net-b2c" align = "middle" src = "<c:url value = '/bank_img/zx.bmp' ///"/>> </div> <div style = "マージンボトム:20px;" name = "sdb-net-b2c" align = "middle" src = "<c:url value = '/bank_img/sfz.bmp' ///"/>> <input id = "gdb-net-b2c" typen src = "<c:url value = '/bank_img/gf.bmp' ///"/> <input id = "shb-net-b2c" type = "radio" name "value =" shb-net-b2c "/> <img name =" shb-net-b2c "align =" src = "url" <c:url value = '/bank_img/sh.bmp' /// "/> <input id =" spdb-net-b2c "type =" radio "yh" value = "spdb-net-b2c"/> <img name = "spdb-net-b2c" align = "middle" src = " <div style = "margin-bottom:20px;"> <input id = "post-net-b2c" type = "radio" yh "value =" post-net-b2c "/> <img name =" post-net-b2c "align =" middle "src =" <c:url value = '/bank_img/post.bmp'/"/>"/> type = "Radio" name = "yh" value = "bjrcb-net-b2c"/> <img name = "bjrcb-net-b2c" align = "" middle "src =" <c:url value = '/bank_img/beijingnongshang.bmp' // "/>"/> 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 = "ladio" yh "cz-net-b2c"/>> align = "middle" src = "<c:url value = '/bank_img/zheshang.bmp.bmp.bmp.bmp.bmp' ////// div> </div> <div style =" margin:40px; "> <a href =" javascript:void $( '#form1')。Payment.Properties
P1_MERID = 10001126856KEYVALUE = 69CL522AV6Q613II4W6U8K6XUW8VM1N6BFGYV769220IUYE9U37N4Y7RI4PLP8_URL = HTTP/:// LOCALHOST/:8080/Goods/Goods/Goods
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。