Je ne dirai pas beaucoup de bêtises, je vais simplement vous poster du code java.
Le code spécifique est le suivant:
/ * Processus de paiement * // **** contrôleur.java Le code est le suivant: * / @ requestmapping (value = "/paysubmit.htm", méthode = requestMethod.Post) public ModelAndView PaySubmit (httpservletRequest request, httpservletReSponse Response, @requestParam map <string, objet> maps) {modelAwView Modelwiew Model = newre ModelAndView ("*** / soumi"); / *** Bloc de code * / modèle de retour;} / * soumider.jsp Le code est le suivant: * / <% @ page contentType = "Text / html; charset = utf-8" linguisé "- // w3c // dtd html 4.01 transitional // en"> <html> <éadf> <tight> Pay </ title> <méta http-equiv = "cache-control" contenu ">" meta http-equiv = cache-control "contenu =" no-cache "> <méta http-equiv =" expire "not-cache"> <méta http-equiv = "expire" not-cache "> <méta http-equiv =" expire "NON-CACHE"> <méta http-equie contenu = "0"> </ head> <body> <% request.SetcharAtteRencoding ("utf-8"); string type = (string) request.getAttribute ("type"); string shtmltext = ""; if ("1" .equals (type)) {shtmltex request.getAttribute ("amt"), type);} else {shtmltext = payutil.allinpaybuildform ((string) request.getAttribute ("orderNo"), (string) request.getAttribute ("Amt"), type, request);} out.println (shtmltex est le suivant: * // *** Générer les données de la page * @param URL L'URL pour le paiement tiers * @param spara * @param strMethod * @ return * / public static buildRequest (String URL, map <string, spara, string strMethod) {ArrayList keys = new ArrayList (spara.keyset ()); StringBuffer (); sbhtml.append ("<form id = /" PaySubForm / "name = /" PaySubForm / "Action = /" + url + "/" Method = / "" + strMethod + "/"> "); for (int i = 0; i <keys.size (); ++ i) {String name = (string) keys.get (i); string value = (string) spara.get (name); sbhtml.append ("<input type = /" Hidden / "name = /" "+ name +" / "value = /" + value + "/"/>"); }sbhtml.append("Input type = /" soumider / "name =" style = / "Affichage: Aucun; /"> </ form> "); sbhtml.append (" <script> document.forms [/ 'paysubform /']. soumed (); </ script> "); return sbhtml.toString ();} / *** prendre le paiement de la vie des gens * @pecuet * @Param OrderNo * @Param amt * @Param Type * @ return * @Param OrderNo * @Param Amt * @Param Type * @ Retour * @Param OrderNo * @Param Amt * @Param Type * @ Retour * @Param Orderno * buildform (String OrderNo, String amt, string type) {// Numéro de marchand String MerchantId = PropertiesRead.Use_Classloador (). GetProperty ("cmbc.pay.id"); // Numéro de commande Le numéro de commande du marchand est généré par le site Web de marchand, avec une longueur maximale de Type de produit de la chaîne = PropertiesRead.use_classloador (). GetProperty ("cmbc.pay.type"); // "vide"; // devise 01 est Cnystring CurrencyType = "01"; // Transfert automatique de la page 0 → Pas de saut; 1 → Jump String AutoJump = "1"; // Jump Waiting Time Time Time Time = "0"; // Merry Pickup URL String Merurl = PropertiesRead.Use_classloador (). GetProperty ("cmbc.pay.return.page.url"); // s'il faut informer les commerçants: 0 → non notifier; 1 → NE PAS notifier String informmer = "1"; // Merchant Notification URLLString InformUrl = PropertiesRead.Use_Classloador (). GetProperty ("Cmbc.pay.return.notify.url"); / *** Confirmation de retour du marchand: 0 → No Retour; 1 → Retour * / String Confirm = "1"; // Pay Bank String merbank = "vide"; // Type de paiement 0 → Arrivée instantanée; 1 → Secure Transaction String TradeType = "0"; // Il faut sélectionner une banque du côté marchand: 0 → Autre; 1 → Sélectionnez une banque sur la chaîne côté marchand banconInput = "0"; // Interface version chaîne strinterface = "5.00"; // Remarques (facultatif) Informations sur la remarque, longueur maximale 50String Remark = "Recharge"; // Payer Type de carte bancaire 00 → Débit et mixage de prêt; 01 → Pure String de débit BankCardType = "00"; // Produit Description String Pdtdnm = "Virtual Product"; // Product Description Address String pdtdetailUrl = PropertiesRead.Use_classloador (). merchant management system for maintenance, and use it to send merchant payments up and upload payment results to encrypt String MD5key = PropertiesRead.use_classLoador().getProperty("CMBC.pay.pwd");//Split encrypted source string String mac_src = "merchanserid =" + merchantID + "& merorderId =" + merOrderId + "& montantsum =" + montant + "& sujet =" + sujet + "¤ycytype =" + CurrencyType + "& autoJump =" + AutoJump + "& waittime =" + wattnime + "& Merurl =" + Merurl + "& informateur =" + information + "& Merurl =" + Merurl + "& informateur =" + information + "& Merurl =" + Merurl + "& informateur =" + information + "& informurl =" + informurl + "& confirm =" + confirm + "& merbank =" + merbank + "& tradetype =" + tradetype + "& bankInput =" + bankInput + "& interface =" + strinterface + "& bankcardType =" + BankCardType + "& pdtdetaill =" + pdtDetArlUrl + "& merkey =" + md5key; string mac = crypto.getMessagediGest (mac_src); // Emballez les paramètres de demande dans mapmap <string, string> sparatemp = new hashmap <string, string> (); sparatemp.put ("Mertuded", mercham merchantid);sParaTemp.put("amountsum", amountsum);sParaTemp.put("subject", subject);sParaTemp.put("currencytype", currencytype);sParaTemp.put("autojump", autojump);sParaTemp.put("waittime", waittime);sParaTemp.put("merurl", Merurl); sparatemp.put ("informateur", informateur); sparatemp.put ("informurl", informateur); sparatemp.put ("confirmer", confirm); sparatemp.put ("merbank", Merbank); Sparatemp.put ("TradeType", TradeType); BankInput); sparatemp.put ("interface", strinterface); sparatemp.put ("remarque", remarque); sparatemp.put ("BankCardType", BankCardType); sparatemp.put ("pdtdnm", pdtdnm); sparatemp.put ("PdtDetAurl", pdtdetailUrl); sparatemp.put ("mac", mac); // créer une chaîne de demande shtmltext = buildRequest (PropertiesRead.use_classloador (). getProperty ("cmbc.pay.url"), sparatemp, "post"); Logger.info ("McPay request: {}", shtmltex); Return); ShtmlText;} / "Crypto.java Code est le suivant" / Importer Java.Security.MessagediGest; Importer Java.Security.NosuchalgorithMexception; / *** <p> Titre: MD5 Encryption Algorithm </p> * <p> Description: Merchant ne doit pas modifier les droits de modification </p> * * <p> * *******. Réservé. </p> * / classe publique Crypto {/ *** Fonction: MD5 Encryption * @param strSrc Source cryptée chaîne de source * @return Entente de chaîne cryptée 32 bits * / public static String getMessagediGest (String strSrc) {Messagedigest Md = null; String StrDes = Null; String algo_md5 = "D.s strSrc.getBytes (); try {md = Messagedigest.getInstance (algo_md5); md.update (bt); strdes = bytes2hex (md.digest ());} catch (nosuchalgorithmexception e) {lance le nouveau système! ");} return strdes;} / *** converti le tableau d'octet en chaîne hex (Integer.tohexString (bts [i] & 0xff)); if (tmp.length () == 1) {des + = "0";} des + = tmp;} return des;}} / *** PAY RETOUR URL (retour à la page) * @param session * @param request * @return * / @ demandemaping (valorise = "/AllPayRe RequestMethod.Post) public ModelandView ALLINPAYRETURNCALL (HTTPServletRequest Request, HttpServletResponse Response, @RequestParam Map <String, Object> Maps) {ModelandView Model = new ModelAndView ("*** / Payreturn"); / *** Block de code * / Retour Model;};Ce qui précède est la connaissance pertinente du processus général de mise en œuvre de paiement et de recharge basée sur le code Java qui vous est présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!