Não vou dizer muito bobagem, vou apenas postar o código Java para você.
O código específico é o seguinte:
/*Processo de pagamento*// **** Controller.java O código é o seguinte:*/ @requestMapp (value = "/PaysubMit.htm", Method = requestmethod.post) public ModelAndView PaySubMIT (HTTPServErquest Solicy, httpsletResponse Response, @RequestPAR MapM <StringMit <stringMit <stringMit <stringRew ModelAndView ("***/submit");/*** Bloco de código*/Modelo de retorno;}/*submit.jsp O código é o seguinte:*/< %@ página contentType = "text/html; charset = utf-8" idioma = "java" trimDiriveChitAspaces = "true" %> < %@ importerem =. Html public "-// w3c // dtd html 4.01 transitória // pt"> <html> <head> <title> pay </title> <meta http-equiv = "Pragma" content = "no-cache"> <meta http-odi-iV = "cache-co-" conteúdo " Content = "0"> </head> <body> <%request.setcharacterencoding ("utf-8"); string type = (string) request.getAttribute ("type"); string shtmltext = ""; if ("1" .equals (type)) {shtmltext = "reendern; request.getAttribute ("amt"), tipo);} else {shtmltext = payutil.allinpaybuildform ((string) request.getAttribute ("orderno"), (string) request.getAttribute ("amt"), type, request);} out.println (shtmltt); O código PayUtil.java é o seguinte:* // *** Gere dados de página* @param url o URL para pagamento de terceiros* @param spara* @param strmethod* @return*/public static string buildRequest (string url, mapa <string> scrmara strmethod) {ArrayList lhayys = sbhtml = new stringBuffer (); sbhtml.append ("<formig id =/" paysubform/"name =/" paysubform/"ação =/" + url + "/" método =/"" " + strmethod +"/">"); para (int i = 0; i <keys.size (); ++ i) {string name = (string) keys.get (i); string value = (string) spara.get (name); sbhtml.append ("<entrada de entrada =/" hidden/"name =/" "name +"/"value =/" + value + "/"/"/"; value =/"Confirm/" estilo =/"Display: Nenhum;/"> </morm> "); sbhtml.append (" <cript> document.forms [/'PaySubform/']. @return*/public static string buildform (string orderno, string amt, string tipo) {// Número do comerciante string mérchantId = propertiesread.use_classloador (). getProperty ("cmbc.pay.id"); // número de transação do número de mercadorias é gerado pelo site do mecâncias; amt; // tipo de produto string string = propertiesRead.use_classloador (). getProperty ("cmbc.pay.type"); // "email"; // moeda 01 é cnystring moeda de moeda de moeda = "01"; // // transferência automática da página de coleta 0 → Não salto; 1 → Jump string autojump = "1"; // salto de tempo de espera string waittime = "0"; // url de pickup alegre merurl = propertiesread.use_classloador (). GetProperty ("cmbc.pay.return.page.url"); // se deve notificar os comerciantes: 0 → não notificar; 1 → não notificar String informmer = "1"; // Notificação do comerciante urlstring informurl = PropertiesRead.use_classloador (). 1 → Return*/string confirm = "1"; // pague string bancário Merbank = "vazio"; // Pay Type 0 → Chegada instantânea; 1 → Transação segura string tradeType = "0"; // se deve selecionar um banco no lado do comerciante: 0 → outro; 1 → Selecione um banco na sequência lateral do comerciante BankInput = "0"; // Versão da interface string strInterface = "5.00"; // observações (opcional) Informações do comentário de pagamento, comprimento máximo 50String Observe = "Recarga"; // PAGAR TIPO DE CARTO BANCO 00 → Débito e mix de empréstimos; 01 → String de débito puro BankCardType = "00"; // PRODUTO Descrição String pdtdnm = "Produto virtual"; // Produto Descrição Endereço String string pdtDetailurl = PropertiesRead.use_classloador (). Sistema de gerenciamento de comerciantes para manutenção e use -o para enviar pagamentos de comerciante e fazer upload de resultados de pagamento para criptografar string md5key = propertiesread.use_classloador (). Mac_src = "MerchantId ="+MerchantId+"& MerorderId ="+MerorderID+"& valeSum ="+valeSum+"& sujeito ="+sujeito+"¤ytype ="+CurrencyPe+"& AutoJump ="+AutoJump+"& Waittime"+"WaitTime+" e Merl = "+AutoJump+" & WaitTime "+" + "& informurl =" + informurl + "& confirm =" + confirm + "& Merbank =" + Merbank + "& TradeType =" + TradeType + "& Bankinput =" + BankInput + "& Interface =" + StrInterface + "& BankCardType =" + Bankttype + "& PDTDATLATALLURLULTLELTRELTRATLANTL = "& merkey ="+md5key; string mac = cripto.getMessagedigest (mac_src); // Pacote os parâmetros de solicitação no mapMap <string, string> sparatemp = new hashmap <string, string> (); sparatemp.put ("merchantId", mechantid); MerchantID); Sparatemp.put ("valeSum", valeSum); Sparatemp.put ("sujeito", sujeito); Sparatemp.put ("CurrencyType", CurrencyType); Sparatemp.put ("AutoJump"); Merurl); Sparatemp.put ("Informer", Informer); Sparatemp.put ("Informurl", Informer); Sparatemp.put ("Confirmar", Confirm); Sparatemp.put ("Merbank", Merbank); Sparatemp.put ("BancheTyPypy", SparatEmpEn; BankInput); Sparatemp.put ("Interface", StrInterface); Sparatemp.put ("Observação", observação); Sparatemp.put ("BankCardType", BankCardType); Sparatemp.put ("Pdtdnm", pdtdnm); Sparatemp.put ("Pdtdnm", pdtdnm); pdtdetailurl); sparatemp.put ("mac", mac); // crie solicitação string shtmltext = buildRequest (PropertiesRead.use_classloador (). getProperty ("shtger.info.pay.url"), sparatemp, "post"); logger.info ("McPay.url"), sparatemp, "pós"); logger.info (" shtmlText;}/"O código cripto.java é o seguinte"/importar java.security.Messagedigest; importar java.security.nosuchalgorithMexception;/*** <p> título: MD5 Encryption Algorithm </p>**<p> <p> Merchante não precisa de algortismo </p>*<p> <p> Todos os direitos reservados. = strsrc.getBytes (); try {md = Messagedigest.getInstance (algo_md5); md.update (bt); strdes = bytes2hex (md.digest ());} captura (NosuchalGoritMexception e) {tlowalState allestexception); ");} retornar strdes;}/*** Converta a matriz de bytes em string hexadecimal (string hexadecimal)* @param BTS Byte Matriz para converter* @returbar a string hexadecimal convertida bytes2hex (byte [] bts) {string des ="; string tmp = null; para (Int i = 0; (Integer.ToHexString (BTS [i] e 0xff)); if (tmp.Length () == 1) {des += "0";} des += tmp;} retornar DES;}}}/***/*** RETURN LIGHT URL (RETURN DO PÁGINA* @PARAM* @param* @returnt*/ RequestMethod.post) public ModelAndView AllInPayrendurnCall (solicitação HttpServletRequest, Resposta HttpServletResponse, @RequestParam Map <String, Object> Maps) {ModelAndView Model = new ModelAndView ("***/PayRung");/*** Código*/Return Model;}O exposto acima é o conhecimento relevante do processo geral de implementação de pagamento e recarga com base no código Java introduzido a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!