package epayment.adapters; import epayment.framework.IGatewayAdapter; import epayment.framework.IPaymentRequest; import epayment.framework.IPaymentResponse; import epayment.framework.PaymentException; import epayment.response.PaymentResponse; /** * The <code>XYZGatewayAdapter</code> class is an * <code>IGatewayAdapter</code> which adapts * to a vendor-specific epayment package. * <p> * This class is strictly an example. * * @author <a href="mailto:mike@clarkware.com">Mike Clark</a> * @author <a href="http://www.clarkware.com">Clarkware Consulting</a> */ public class XYZGatewayAdapter implements IGatewayAdapter { // // Vendor-specific proxy class. // //private XYZProxy _proxy; /** * Constructs an <code>XYZGatewayAdapter</code> instance. */ public XYZGatewayAdapter() { //_proxy = new XYZProxy(); } /** * Sets the payment gateway host. * * @param host Gateway host. */ public void setHost(String host) { //_proxy.setHostName(host); } /** * Performs an authorize for the specified payment request * information and returns a payment response. * * @param request Payment request. * @return Payment response. * @throws PaymentException If an error occurs. */ public IPaymentResponse authorize(IPaymentRequest request) throws PaymentException { PaymentResponse response = new PaymentResponse(); // // Adapt the request information to the // vendor-specific proxy API. // /* _proxy.setAction("1"); _proxy.setUser(request.getUserId()); _proxy.setPass(request.getUserPassword()); _proxy.setName(request.getAccountName()); _proxy.setNumber(request.getAccountNumber()); _proxy.setComment(request.getComment()); _proxy.setAmount(request.getAmount()); */ // // Perform the transaction against // the vendor-specific API. // /* boolean success = false; try { success = _proxy.execute(); } catch (Exception e) { throw new PaymentException(e.getMessage()); } */ // // Adapt the vendor-specific response information // to the generic response API. // /* if (success) { response.setResponseMessage(_proxy.getExecutionResult()); response.setProcessedDate(_proxy.getDateTime()); } else { throw new PaymentException(_proxy.getResult()); } */ return response; } /** * Performs a capture for the specified payment * request information and returns a payment response. * * @param request Payment request. * @return Payment response. * @throws PaymentException If an error occurs. */ public IPaymentResponse capture(IPaymentRequest request) throws PaymentException { // similar to authorize() return new PaymentResponse(); } /** * Performs a sale (authorize and capture) for the specified * payment request information and returns a payment response. * * @param request Payment request. * @return Payment response. * @throws PaymentException If an error occurs. */ public IPaymentResponse sale(IPaymentRequest request) throws PaymentException { // similar to authorize() return new PaymentResponse(); } /** * Performs a credit for the specified payment request * information and returns a payment response. * * @param request Payment request. * @return Payment response. * @throws PaymentException If an error occurs. */ public IPaymentResponse credit(IPaymentRequest request) throws PaymentException { // similar to authorize() return new PaymentResponse(); } /** * Performs a void for the specified payment request * information and returns a payment response. * * @param request Payment request. * @return Payment response. * @throws PaymentException If an error occurs. */ public IPaymentResponse voidSale(IPaymentRequest request) throws PaymentException { // similar to authorize() return new PaymentResponse(); } }