All pastes #425757 Raw Edit

Miscellany

public java v1 · immutable
·published 2007-04-05 18:12 UTC
rendered paste body
/* * CallbackAction.java * * Created on March 1, 2007, 1:30 PM */package com.fxcm.store.actions.frontend;import com.fxcm.store.dbao.AffiliateDBAO;import com.fxcm.store.dbao.OrderDBAO;import com.fxcm.store.dbao.ScheduleDBAO;import com.fxcm.store.entity.Affiliate;import com.fxcm.store.entity.Order;import com.fxcm.store.entity.Schedule;import com.fxcm.store.notify.*;import java.util.Date;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForward;/** * * @author gharding * @version */public class CallbackAction extends Action {        /* forward name="success" path="" */    private final static String SUCCESS = "success";    private final static String FAIL = "fail";    private String mailserver;        /**     * This is the action called from the Struts framework.     * @param mapping The ActionMapping used to select this instance.     * @param form The optional ActionForm bean for this request.     * @param request The HTTP Request we are processing.     * @param response The HTTP Response we are processing.     * @throws java.lang.Exception     * @return     */    public ActionForward execute(ActionMapping mapping, ActionForm  form,            HttpServletRequest request, HttpServletResponse response)            throws Exception {                System.out.println((new Date()) + ": Callback called");                        String approved = request.getParameter("szIsApproved");                if (approved == null || !approved.equals("1")) {            // error messages            String displaymsg = request.getParameter("szAuthorizationDeclinedMessage");            String returnCode = request.getParameter("szReturnCode");                        System.err.println("Failed order: ("+returnCode+") "+displaymsg);                        return mapping.findForward(FAIL);        }                String amount = request.getParameter("szTransactionAmount");        Double dAmount = Double.parseDouble(amount) / 100;                String name = request.getParameter("sjname");        String email = request.getParameter("email");        String phone = request.getParameter("shiptophone");                String address1 = request.getParameter("streetaddress");        String address2 = request.getParameter("streetaddress2");        String city = request.getParameter("city");        String state = request.getParameter("streetaddress");        String zipcode = request.getParameter("zipcode");                        // {affiliate id}s{schedule id}r{random string}        String ordernumber = request.getParameter("szOrderNumber");        int affId = Integer.parseInt(ordernumber.substring(0,ordernumber.indexOf('s')));        int schedId = Integer.parseInt(ordernumber.substring(ordernumber.indexOf('s') + 1, ordernumber.indexOf('r')));                Schedule schedule = (new ScheduleDBAO()).get(schedId);        Affiliate affiliate = (new AffiliateDBAO()).get(affId);                Order order = new Order();                order.setFirstname(name);        order.setAddress1(address1);        order.setAddress2(address2);        order.setCity(city);        order.setState(state);        order.setEmail(email);        order.setAmount(dAmount);                order.setSchedule(schedule);        order.setAffiliate(affiliate);                order.setOrderTimestamp(new Date());        order.setComplete(true);                Notifier n2 = new CopsNotifierImpl();                try {            n2.notify(order);        } catch (NotifierException e) {            String status = order.getStatus();            if (status == null) status = "";            status += e.getMessage()+"\n";            order.setStatus(status);                        order.setComplete(false);                    }                Notifier n1 = new EloquaNotifierImpl();        try {            n1.notify(order);        } catch (NotifierException e) {            String status = order.getStatus();            status += e.getMessage()+"\n";            order.setStatus(status);                                }                String mailserver = request.getSession().getServletContext().getInitParameter("mailserver");            String emails = request.getSession().getServletContext().getInitParameter("emails");                        String body = "Order " + (order.getComplete() ? "completed" : "failed") + " for:\n"                    + order.getFirstname() + "\n"                    + order.getEmail() + "\n"                    + "Course ID: "+order.getSchedule().getProduct().getCourseId()+"\n"                    + "Date: "+order.getSchedule().getDate().toString();                        send(mailserver, "orders@fxpowercourse.com", emails, (order.getComplete() ? "Order complete" : "COPS reg. failed"), body);                        System.out.println("Sent email to: "+emails+" from "+mailserver);                (new OrderDBAO()).save(order);                System.out.println((new Date()) + ": Callback completed (STATUS: "+ (order.getComplete()? "COMPLETE" : "FAIL"));        return mapping.findForward(SUCCESS);            }                private synchronized void send(String mailserver, String from, String to, String subject, String body) {                Properties props = new Properties();        props.setProperty("mail.smtp.host", mailserver);        final MimeMessage message = new MimeMessage(Session.getDefaultInstance(props));        try {            message.setSender(new InternetAddress(from));            InternetAddress iTo = new InternetAddress(to);            message.addRecipient(Message.RecipientType.TO, iTo);            message.setSubject(subject);            message.setText(body);                                        new Thread() {                                        public void run() {                    try {                        Transport.send(message);                    } catch (Exception e) {                        e.printStackTrace();                        System.err.println("Cannot send email");                    }                }            }.start();        } catch (Exception e) {            e.printStackTrace();            System.err.println("Cannot set email props");        }            }}