public PaymentResult ProcessPayment(BasePaymentData paymentData)
        {
            CreditCardPaymentData creditCardData = paymentData as CreditCardPaymentData;

            CreditCardResult authResult = this.creditCardService.AuthorizeCreditCard(creditCardData.CreditCardNumber,
                                                                                     creditCardData.ExpirationDate, creditCardData.Cvv, creditCardData.BillingZipCode, creditCardData.Amount);

            if (authResult.Authorized == true)
            {
                int referenceNumber = paymentsDao.SaveSuccessfulCreditCardPayment(creditCardData, authResult);

                PaymentResult paymentResult = new PaymentResult()
                {
                    CustomerAccountNumber = creditCardData.CustomerAccountNumber,
                    PaymentDate           = creditCardData.PaymentDate,
                    Success         = authResult.Authorized,
                    ReferenceNumber = referenceNumber
                };
                return(paymentResult);
            }
            else
            {
                int referenceNumber = paymentsDao.SaveFailedCreditCardPayment(creditCardData, authResult);

                PaymentResult paymentResult = new PaymentResult()
                {
                    CustomerAccountNumber = creditCardData.CustomerAccountNumber,
                    PaymentDate           = creditCardData.PaymentDate,
                    Success         = authResult.Authorized,
                    ReferenceNumber = referenceNumber
                };
                return(paymentResult);
            }
        }
        public PaymentResult ProcessPayment(BasePaymentData paymentData)
        {
            EftPaymentData eftPaymentData = paymentData as EftPaymentData;

            EftAuthorization eftResult = this.eftProcessor.AuthorizeEftPayment(eftPaymentData.RoutingNumber,
                                                                               eftPaymentData.BankAccountNumber, eftPaymentData.AccountType, eftPaymentData.Amount);

            if (eftResult.Authorized)
            {
                int referenceNumber = paymentsDao.SaveSuccessfulEftPayment(eftPaymentData, eftResult);

                PaymentResult paymentResult = new PaymentResult()
                {
                    CustomerAccountNumber = eftPaymentData.CustomerAccountNumber,
                    PaymentDate           = eftPaymentData.PaymentDate,
                    Success         = eftResult.Authorized,
                    ReferenceNumber = referenceNumber
                };

                return(paymentResult);
            }
            else
            {
                int referenceNumber = paymentsDao.SaveFailedEftPayment(eftPaymentData, eftResult);

                PaymentResult paymentResult = new PaymentResult()
                {
                    CustomerAccountNumber = eftPaymentData.CustomerAccountNumber,
                    PaymentDate           = eftPaymentData.PaymentDate,
                    Success         = eftResult.Authorized,
                    ReferenceNumber = referenceNumber
                };
                return(paymentResult);
            }
        }
Ejemplo n.º 3
0
        public PaymentResult ProcessPayment(BasePaymentData paymentData)
        {
            foreach (var handler in PaymentHandlers)
            {
                if (handler.CanProcessPayment(paymentData))
                {
                    return(handler.ProcessPayment(paymentData));
                }
            }

            throw new Exception("Unable to find processor to process payment");
        }
Ejemplo n.º 4
0
        public PaymentResult ProcessPaymentLinq(BasePaymentData paymentData)
        {
            var paymentHandler = PaymentHandlers.FirstOrDefault(handler => handler.CanProcessPayment(paymentData));

            if (paymentHandler != null)
            {
                return(paymentHandler.ProcessPayment(paymentData));
            }
            else
            {
                throw new Exception("Unable to find processor to process payment");
            }
        }
        public PaymentResult ProcessPayment(BasePaymentData paymentData)
        {
            CheckPaymentData checkPaymentData = paymentData as CheckPaymentData;

            int           referenceNumber = this.paymentsDao.SaveCheckPayment(checkPaymentData);
            PaymentResult paymentResult   = new PaymentResult()
            {
                CustomerAccountNumber = checkPaymentData.CustomerAccountNumber,
                PaymentDate           = checkPaymentData.PaymentDate,
                Success         = true,
                ReferenceNumber = referenceNumber
            };

            return(paymentResult);
        }
 public bool CanProcessPayment(BasePaymentData paymentData)
 {
     return(paymentData.PaymentType == PaymentType.CREDIT_CARD);
 }
 public bool CanProcessPayment(BasePaymentData paymentData)
 {
     return(paymentData.PaymentType == PaymentType.EFT);
 }
 public PaymentResult ProcessPayment(BasePaymentData paymentData)
 {
     throw new Exception("Unkown Payment Type");
 }
 public bool CanProcessPayment(BasePaymentData paymentData)
 {
     return(true);
 }
Ejemplo n.º 10
0
 public int SaveUnknownPaymentType(BasePaymentData paymentData)
 {
     // Save an unknown Payment
     return(40);
 }