Я не скажу много чепухи, я просто опубликую вам код Java.
Конкретный код заключается в следующем:
/*Процесс оплаты*// **** controller.java Код следующим образом:*/ @requestMapping (value = "/paysubmit.htm", method = requestMethod.post) public modelAndview paysubmit (httpservlectrequest, httpservesponse response, @requestparam map. ModelAndView ("***/отправить");/*** Кодовый блок*/return Model;}/*отправить. PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Pay</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content = "0"> </head> <body> <%request.setcharacterencoding ("utf-8"); string type = (string) request.getattribute ("type"); string shtmltext = ""; if ("1" .equals (type)) {shtmltext = payutil.buildform ("string) request. request.getAttribute ("amt"), type);} else {shtmltext = payutil.allinpaybuildform ((string) request.getattribute ("orderno"), (String) request.getAttribt ("amt"), тип, запрос);} out.println (shtmltext); выглядит следующим образом:* // *** генерировать данные страницы* @param URL URL для стороннего платежа* @param spara* @param strmethod* @return*/public Static String BuildRequest (String url, map <string> spara, string strmethod) {arraylist keys = new ArrayList (spara.keaset (); StringBuffer (); sbhtml.append ("<form id =/" paysubform/"name =/" paysubform/"action =/" + url + "/" method =/"" + strmethod + "/"> "); for (int i = 0; я <keys.size (); ++ i) {string name = (string) keys.get (i); string value = (string) spara.get (name); sbhtml.append ("<input type =/" hidden/"name =/" " + name +"/"value =/" + value + "/"/> robhtml. value =/"sefint/" style =/"display: none;/"> </form> "); sbhtml.append (" <script> document.forms [/'paysubform/']. prepect (); </script> "); вернуть sbhtml.toString ();}/*** @return*/public Static String Buildform (String orderno, String Amt, String Type) {// Merchant Number String merchantId = PropertiesRead.USE_CLASSLOALOR (). GETPOROPERTY ("CMBC.PAY.ID"); // Номер заказа. amt; // тип продукта строка string = PropertiesRead.USE_CLASSLOALOR (). getProperty ("cmbc.pay.type"); // "пусто"; // валюта 01 - это cnystring currancetype = "01"; // Автоматическая передача страницы пикапа 0 → без прыжка; 1 → Jump String autojump = "1"; // Строка ожидания string string = "0"; // url url url url merurl = PropertiesRead.USE_CLASSLOALOR (). GETPOROPERTY ("cmbc.pay.renurn.page.url"); // Уведомление ли торговцев: 0 → не уведомлять; 1 → Не уведомление String informmer = "1"; // Уведомление о торговле urlString informurl = PropertiesRead.USE_CLASSLOALOR (). GETPOROPERTY ("cmbc.pay.renurn.notify.url");/*** Подтверждение возврата торговца: 0 → без возврата; 1 → return*/string enform = "1"; // платить банковская строка merbank = "empty"; // Тип оплаты 0 → мгновенное приезд; 1 → безопасная строка транзакции tradetype = "0"; // выбирать банк на торговой стороне: 0 → другие; 1 → Выберите банк на торговой боковой строке bankinput = "0"; // версия интерфейса string strinterface = "5.00"; // Замечания (необязательно) Замечание о платежах, максимальная длина 50String замечание = "Recharge"; // Тип банковской карты 00 00 → Микс дебета и кредита; 01 → Pure Debit String BankCardType = "00"; // Описание продукта string pdtdnm = "Виртуальный продукт"; // Описание продукта Адрес строка Система управления продавцами для технического обслуживания, и используйте ее для отправки торговых платежей и загрузки результатов оплаты, чтобы зашифровать строку md5key = propertiesRead.use_classloador (). getProperty ("cmbc.pay.pwd"); // Разделитель зашифрованная строка исходной строки mac_src = "merchantid ="+merchantid+"& merorderid ="+merorderid+"& umintsum ="+namountsum+"& subject ="+subject+"¤cytype ="+currancetype+"& autojump ="+autojump+"& waittime ="+waittim + "& informurl =" + informurl + "& inform =" + antrew + "& merbank =" + merbank + "& tradetype =" + tradetype + "& bankinput =" + bankinput + "& interface =" + strinterface + "& bankcardtype =" + bankcardtype + "& pdtdetailure "& merkey ="+md5key; string mac = crypto.getmessagedigest (mac_src); // упаковывать параметры запроса в mapmap <string, string> sparatemp = new hashmap <string> (); sparatemp.put ("merchantid", merchantid); sparatemp.put. MerchantId); sparatemp.put ("umintsum", umintsum); sparatemp.put ("субъект", субъект); sparatemp.put ("currencetype", currencetype); sparatemp.put ("autojump", Autojump); sparatemp.put ("waittime); merurl); sparatemp.put («Informer», Informer); sparatemp.put («Informurl», Informer); Sparatemp.put («Подтверждение», подтверждение); sparatemp.put («merbank», merbank); sparatemp.put («tradetype», tradetype); sparatemp.put ("bankinpu BankInput); sparatemp.put ("interface", strinterface); sparatemp.put ("замечание", замечание); sparatemp.put ("bankcardtype", bankcardtype); sparatemp.put ("pdtdnm", pdtdnm); sparatemp.put ("pdtdetailurl", pdtdnm); pdtdetailurl); sparatemp.put ("mac", mac); // Создать строку запроса shtmltext = buildRequest (propertiesRead.use_classloador (). getProperty ("cmbc.pay.url"), sparatemp, "post"); logger.info ("mcpay. shtmltext;}/"Crypto.java Code выглядит следующим образом"/Import Java.Security.messagedIgest; импорт java.security.nosuchalgorithmexception;/*** <p> Название: MD5 Algorithm </p>*<p> Зарезервирован. strsrc.getbytes (); try {md = messagedigest.getinstance (algo_md5); md.update (bt); strdes = bytes2Hex (md.digest ());} catch (nosuchalgorithmexcept e) {throw newallaLexception («Md5 Algorithmexcept e) {Throw newallAteException (». ");} return strdes;}/*** преобразовать массив байтов в шестнадцатеричную строку (шестнадцатеричная строка)* @param bts byte byte массив для преобразования* @return преобразованный шестнадцатеричный строки Bytes2Hex (byte [] bts) {string des =" "; String tmp = null; for (int i = 0; (Integer.tohexstring (bts [i] & 0xff)); if (tmp.length () == 1) {des += "0";} des += tmp;} return des;}}/*** url return url (return to page)* @param steckler* @return*/ @ @weestmapping = "/@param session. Requestmethod.post) public modelandview allinpayreturncall (httpservlectrequest, httpservletresponse response, @requestparam map <string, object> maps) {modelandView model и new ModelAndView ("***/payreturn");/*** Код -блок*/return Model;};};};};};};Выше приведено соответствующее знание общего процесса реализации оплаты и перезарядки на основе кода Java, введенного вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!