package epayment.adapters;
import epayment.adapters.*;
import epayment.framework.IGatewayAdapter;
import epayment.framework.IPaymentRequest;
import epayment.framework.IPaymentResponse;
import epayment.framework.PaymentException;
import epayment.response.PaymentResponse;
/**
* The <code>ABCGatewayAdapter</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 ABCGatewayAdapter implements IGatewayAdapter {
//
// Vendor-specific proxy class.
//
//private ABCProxy _proxy;
/**
* Constructs an <code>ABCGatewayAdapter</code> instance.
*/
public ABCGatewayAdapter() {
//_proxy = new ABCProxy();
}
/**
* Sets the payment gateway host.
*
* @param host Gateway host.
*/
public void setHost(String host) {
//_proxy.setGatewayHostName(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("authorize");
_proxy.setUserId(request.getUserId());
_proxy.setPassword(request.getUserPassword());
_proxy.setAccountHolderName(request.getAccountName());
_proxy.setAccountHolderNumber(request.getAccountNumber());
_proxy.setUserDefinedField1(request.getComment());
_proxy.setTransactionAmount(request.getAmount());
*/
//
// Perform the transaction against
// the vendor-specific API.
//
/*
boolean success = false;
try {
success = _proxy.performTransaction();
} catch (Exception e) {
throw new PaymentException(e.getMessage());
}
*/
//
// Adapt the vendor-specific response information
// to the generic response API.
//
/*
if (success) {
response.setResponseMessage(_proxy.getResult());
response.setProcessedDate(_proxy.getDate());
} 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();
}
}