<% /* * Login2.jsp 13/04/02 * * Copyright 2002 by George Ruthart, * 1955 Roy Ivor Crescent, Mississauga, Ontario, Canada L5L 3N7 * All rights reserved. * * This source code is the confidential and proprietary information * of George Ruthart ("Confidential Information"). You shall * not disclose this Confidential Information to any third parties * and shall not modify this code without the written permission * from George Ruthart as well as shall use the software only in * accordanc with the terms of the license agreement that * you entered into with George Ruthart. */ %> <%@ page import="org.apache.ecs.*" %> <%@ page import="org.apache.ecs.html.*" %> <%@ page import="java.util.*" %> <%@ page import="java.net.*" %> <%@ page import="net.ruthart.rdbms.*" %> <%@ page import="javax.net.ssl.HttpsURLConnection" %> <%@ page import="java.io.DataOutputStream" %> <%@ page import="java.io.InputStreamReader" %> <%@ page import="java.io.BufferedReader" %> <%! String [] names; %> <% HashMap membHash = new HashMap(); HashMap rawHash = new HashMap(); LoginInfo li = new LoginInfo(getServletContext()); AuthInfo ai = li.getAuthInfo(request); double hst = 0.13; double gst = 0.05; String subtype = null; String mid = null; for (Enumeration e=request.getParameterNames(); e.hasMoreElements(); ) { String rawKey = (String)e.nextElement(); String key = rawKey.indexOf(".") > -1 ? rawKey.substring(rawKey.indexOf(".") + 1) : rawKey; membHash.put(key, request.getParameter(rawKey)); rawHash.put(rawKey, request.getParameter(rawKey)); System.out.println(key + " = " + membHash.get(key)); } if (membHash.containsKey("passwd")) membHash.put("clearw",(String)membHash.get("passwd")); //if (ai.mid != null) membHash.put("mid", ai.mid); Head head = new Head(); head.addElement(new Script("","js/send.js")); head.addElement(""); head.addElement(new Link().setHref("js/form2.css").setRel("stylesheet").setType("text/css")); head.addElement(new Meta().setContent("NO-CACHE").setHttpEquiv("CACHE-CONTROL")); Link lnk = new Link(); head.addElement(lnk); Body body = new Body(); A a0 = new A("https://www.iciworld.com").addElement(new IMG("https://iciworld.com/banner/BannerICI.gif").setBorder(0)); body.addElement(new Center(new H1("ICIWorld net Inc.")).addElement(a0)).addElement("\n"); body.addElement(new BR()); String htmlString = ""; if (membHash.containsKey("cardnumber")) { String method = "POST"; String infoPath = application.getRealPath("/WEB-INF/properties/payment.properties"); // System.out.println("********** " + infoPath); PaymentInfo pi = new PaymentInfo(infoPath); URL url = new URL(pi.getPaymentUrl()); System.out.println("URL: " + url.toString()); HttpsURLConnection ucon = (HttpsURLConnection)url.openConnection(); ucon.setRequestMethod(method); ucon.setDoOutput( true ); ucon.setRequestProperty( "charset", "utf-8"); String urlParameters = pi.getPaymentInfo(membHash); System.out.println(urlParameters); DataOutputStream wr = new DataOutputStream(ucon.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); int responseCode = ucon.getResponseCode(); Date fdate = new Date(ucon.getDate()); BufferedReader in = new BufferedReader(new InputStreamReader(ucon.getInputStream())); String inputLine; StringBuffer uresponse = new StringBuffer(); HashMap respHash = new HashMap(); while ((inputLine = in.readLine()) != null) { String[] temp = inputLine.split("="); if (temp.length == 2) { respHash.put(temp[0], temp[1]); uresponse.append(inputLine).append("\n"); } else if (temp.length == 1) respHash.put(temp[0], ""); } // else continue; System.out.println("**** ? " + respHash.toString()); if (respHash.containsKey("errorCode")) { Table t = new Table(0); t.setAlign("center"); t.setWidth("80%"); t.addElement(new TR().addElement(new TD().setColSpan(2).addElement(new H2("An error occured while processing your credit card!")))); t.addElement(new TR().addElement(new TD("Error Code:")).addElement(new TD(respHash.get("errorCode")))); t.addElement(new TR().addElement(new TD("Error Name:")).addElement(new TD(respHash.get("errorName")))); t.addElement(new TR().addElement(new TD("Error Message:")).addElement(new TD(respHash.get("errorMessage")))); t.addElement(new TR().addElement(new TD("Please use the back button of your browser and correct your information.").setColSpan(2))); body.addElement(t); } else { HashMap detailHash = pi.processPayment(respHash); CustomerReceipt cr = new CustomerReceipt(respHash.get("ssl_invoice_number")); String receiptHtml = cr.getReceipt(); body.addElement(receiptHtml); // body.addElement("
" + uresponse.toString() + "
"); in.close(); } String subject = "Customer Receipt"; String email = ""; htmlString = head.toString() + "\n" + body.toString(); if (membHash.containsKey("email")) { email = membHash.get("email"); MailUtils.mailOne(email, "", "service@iciworld.net", "service@iciworld.net", subject, htmlString, true); } } else if (session.getAttribute("sessMembId") == null && membHash.containsKey("memberid") && DbUtils.recordExists("memb", "memberid", membHash.get("memberid"))){ // Duplicate memberid Table t = new Table(0); t.setAlign("center"); t.setWidth("80%"); t.addElement(new H1("Error Message")); t.addElement(new H3("Duplicate member identifier:")); t.addElement(new P().addElement(DbUtils.getMessage("duplicatememberid"))); body.addElement(t); htmlString = head.toString() + "\n" + body.toString() + "\n"; } else { if (!membHash.containsKey("memberid")) { // looks like this is a renewal if (!ai.authed || ai.mid == null) { System.out.println("cUrl: " + request.getRequestURI()); String forwardUrl = "/Login.jsp"; session.setAttribute( "continueUrl", request.getRequestURI()); application.getRequestDispatcher( forwardUrl ).forward( request, response ); ; } else { membHash.put("mid", ai.mid); mid = ai.mid; String[] select = {"firstname","lastname","companyname","phonebus","address1","city","stateprov","country","zipcode","email","subtype"}; HashMap tempHash = DbUtils.querySingleRow(select, "memb", "mid=" + ai.mid); subtype = tempHash.get("subtype").toString(); Iterator it = tempHash.keySet().iterator(); while (it.hasNext()){ String key = (String)it.next(); if (!membHash.containsKey(key) && tempHash.get(key) != null) membHash.put(key, (tempHash.get(key)).toString()); } } } else { // new registration, add to database HashMap params = new HashMap(); for (Enumeration e = request.getParameterNames(); e.hasMoreElements(); ) { String key = (String) e.nextElement(); //System.out.println(key+ " : " + ((String[])req.getParameterValues(key))[0]); params.put(key.toLowerCase(), request.getParameterValues(key)); } String sessMembId = (String)session.getAttribute("sessMembId"); if (sessMembId !=null && DbUtils.recordExists("memb", "memberid", sessMembId)) { //modify reg Mod2db m2d = new Mod2db(); mid = (DbUtils.querySingleRow("mid", "memb", "memberid='" + sessMembId + "'", "")).elementAt(0).toString(); String[] keyArr = {mid}; m2d.modRec("reg", keyArr, params, ai); } else { session.setAttribute("sessMembId", (params.get("memb.memberid"))[0]); session.setAttribute("membHash", params); Add2db a2d = new Add2db(); Object midObj = a2d.addRec("reg", params, new AuthInfo(), null); mid = "" + midObj.toString(); } } PaymentInfo pi = new PaymentInfo(); membHash.putAll(pi.getAmount(membHash)); Table t1 = new Table(0); Form f1 = new Form("Extend.jsp","POST").setName("form0"); Db2mod d2m = new Db2mod(); Vector rows = new Vector(); rows = d2m.getRawFields("pay",membHash,head,ai); String buttonLabel="Next"; String buttonText="
Proceed to Payment"; String action = "add"; for (Enumeration e = rows.elements() ; e.hasMoreElements() ;) { t1.addElement(e.nextElement()); t1.addElement("\n"); } Input sm = new Input("BUTTON","SUBMIT",buttonLabel); sm.setOnClick("send()"); if (mid != null) f1.addElement(new Input("HIDDEN","mid", mid)); if (request.getParameter("subtype") != null) { f1.addElement(new Input("HIDDEN","subtype", (String)request.getParameter("subtype"))); f1.addElement(new Input("HIDDEN","memb.subtype", (String)request.getParameter("subtype"))); } else if (subtype != null) { f1.addElement(new Input("HIDDEN","subtype",subtype)); } t1.addElement(new TR().addElement(new TD().addElement(new BR()).addElement(sm).setColSpan(2).addElement(buttonText).setClass("submit"))); f1.addElement(t1); body.addElement(f1); htmlString = head.toString() + "\n" + body.toString() + "\n"; } out.println(htmlString); %>