public void ProcessCreditCard(PaymentDetails paymentDetails, decimal amount) { using (var paymentGateway = new PaymentGateway()) { try { paymentGateway.Credentials = "account credentials"; paymentGateway.CardNumber = paymentDetails.CreditCardNumber; paymentGateway.ExpiresMonth = paymentDetails.ExpiresMonth; paymentGateway.ExpiresYear = paymentDetails.ExpiresYear; paymentGateway.NameOnCard = paymentDetails.CardholderName; paymentGateway.AmountToCharge = amount; paymentGateway.Charge(); } catch (AvsMismatchException ex) { throw new OrderException("The card gateway rejected the card based on the address provided.", ex); } catch (Exception ex) { throw new OrderException("There was a problem with your card.", ex); } } }
public void ChargeCard(PaymentDetails paymentDetails, Cart cart) { using (var paymentGateway = new PaymentGateway()) { try { paymentGateway.Credentials = "account credentials"; paymentGateway.CardNumber = paymentDetails.CreditCardNumber; paymentGateway.ExpiresMonth = paymentDetails.ExpiresMonth; paymentGateway.ExpiresYear = paymentDetails.ExpiresYear; paymentGateway.NameOnCard = paymentDetails.CardholderName; paymentGateway.AmountToCharge = cart.TotalAmount; paymentGateway.Charge(); } catch (AvsMismatchException ex) { throw new OrderException("The card gateway rejected the card based on the address provided.", ex); } catch (Exception ex) { throw new OrderException("There was a problem with your card.", ex); } } }
public static void ChargeCash(PaymentDetails paymentDetails, Cart cart) { using (var paymentGateway = new PaymentGateway()) try { paymentGateway.AmountToCharge = cart.TotalAmount; paymentGateway.Charge(); } catch (AvsMismatchException ex) { throw new OrderException("The card gateway rejected the card based on the address provided.", ex); } catch (Exception ex) { throw new OrderException("There was a problem with your card.", ex); } }
public ActionResult Index() { if (HttpContext.Request.HttpMethod == "POST") { try { string cardNumber = HttpContext.Request.Form["card-number"]; ViewBag.CardNumber = cardNumber; switch (HttpContext.Request.Form["action"]) { case "checkExistence": bool exists = paymentGateway.AccountExists(cardNumber); if (exists) { ViewBag.SuccessMessage = "Account exists!"; } else { ViewBag.ErrorMessage = "Account does not exist."; } break; case "charge": double chargeAmount = Double.Parse(HttpContext.Request.Form["charge-amount"]); try { paymentGateway.Charge(cardNumber, chargeAmount); ViewBag.SuccessMessage = "Account was successfully charged."; } catch (PaymentGatewayException e) { ViewBag.ErrorMessage = e.Message; } break; case "return": double returnAmount = Double.Parse(HttpContext.Request.Form["return-amount"]); paymentGateway.Deposit(cardNumber, returnAmount); ViewBag.SuccessMessage = "Deposit successful."; break; case "ping": bool result = paymentGateway.Ping(); if (result) { ViewBag.SuccessMessage = "Ping received OK!."; } else { ViewBag.ErrorMessage = "Ping did not receive OK :(."; } break; case "balance": decimal balance = paymentGateway.GetBalance(cardNumber); ViewBag.SuccessMessage = "Balance: $" + balance; break; case "activate": paymentGateway.ActivateAccount(cardNumber); ViewBag.SuccessMessage = "Account activated!"; break; case "create": string newCardNumber = paymentGateway.CreateAccount(); ViewBag.SuccessMessage = "Account created! Card number: " + newCardNumber; break; default: ViewBag.ErrorMessage = "Invalid action."; break; } } catch (FormatException e) { ViewBag.ErrorMessage = "One or more inputs has an invalid format."; } catch (Exception e) { ViewBag.ErrorMessage = e.GetType() + ":" + e.Message; } } return(View()); }