public IActionResult CreateCreditCard(CreaditCardCreateViewModel model) { if (!ModelState.IsValid) { return(BadRequest("Invalid Request")); } var creditCard = _creditCardService.CreateCreditCard(model); if (creditCard == false) { return(StatusCode((int)HttpStatusCode.NotAcceptable, creditCard)); } return(Ok()); }
public bool CreateCreditCard(CreaditCardCreateViewModel model) { StripeConfiguration.SetApiKey(SETTING.Value.SecretStripe); var customerTMP = _customerRepository.Get(x => x.Deleted == false && x.Id == model.CustomerId); if (customerTMP.StripeId == null || customerTMP.StripeId == "") { var options = new CustomerCreateOptions { Email = customerTMP.Email, Description = "Customer for " + customerTMP.FullName + " " + customerTMP.Email, SourceToken = model.CardId }; var service = new Stripe.CustomerService(); Stripe.Customer customer = service.Create(options); customerTMP.StripeId = customer.Id; _customerRepository.Update(customerTMP); model.CardId = customer.DefaultSourceId; model.Isdefault = true; } else { var optionsCard = new CardCreateOptions { SourceToken = model.CardId }; var serviceCard = new Stripe.CardService(); var card = serviceCard.Create(customerTMP.StripeId, optionsCard); model.CardId = card.Id; } model.Last4DigitsHash = encrypt(model.Last4DigitsHash); var creditCard = _mapper.Map <CreaditCardCreateViewModel, CreditCard>(model); _creditCardRepository.Add(creditCard); _unitOfWork.CommitChanges(); return(true); }