public RedirectResult Create(PaymentDetails payementDetails) { Api.Data.Entities.Card card = RetrieveCard(payementDetails); //cardRepository.SaveCard(card); //cardRepository.Commit(); Api.Data.Entities.Customer customer = new Api.Data.Entities.Customer { cardId = card.Id, Name = payementDetails.Lastname + ", " + payementDetails.Firstname }; //customerRepository.SaveCustomer(customer); //customerRepository.Commit(); PaymentData payment = new PaymentData() { Order = orderRepository.GetById(int.Parse(payementDetails.TransactionId)), Customer = customer }; //paymentRepository.SavePayment(payment); //paymentRepository.Commit(); PaymentApiModel pam = new PaymentApiModel(card, payment, customer); var requestResult = CreatePaymentRequest(pam); //ajouter une loguique de réussite ou de rejet du payment //manipuler le paymentDetails pour voir si ca marche bool result = Validate(payementDetails); var rnd = new Random(); int val = rnd.Next(6); //Si le payment réussi, alors on renvoi vers l'écran de réussite if (result && val <= 3) { return(Redirect(successUrl)); } else { return(Redirect(failureUrl)); } }
private async Task <HttpResponseMessage> CreatePaymentRequest(PaymentApiModel payment) { using (var client = new HttpClient()) using (var request = new HttpRequestMessage()) { request.Method = HttpMethod.Post; request.RequestUri = new Uri("https://localhost:44377/api/Transaction"); var json = JsonConvert.SerializeObject(payment); request.Content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.SendAsync(request); return(response); } }
public bool Post(PaymentApiModel paymentData) { // Order order = paymentData.PaymentData.Order; if (paymentData.Card.Id == 0) { Card card = new Card() { cardholderName = paymentData.Card.cardholderName, cvv = paymentData.Card.cvv, cardNumber = paymentData.Card.cardNumber, expiryDate = paymentData.Card.expiryDate }; cardRepository.SaveCard(card); cardRepository.Commit(); } else { Card card = cardRepository.GetById(paymentData.Card.Id); } Customer customer = new Customer() { cardId = cardRepository.GetByCredentials(paymentData.Card.cardholderName, paymentData.Card.cvv, paymentData.Card.cardNumber).Id, Name = paymentData.Customer.Name }; customerRepository.SaveCustomer(customer); customerRepository.Commit(); //TODO : VOIR POURQUOI CET ENCULAY DE EF NE VEUX PAS METTRE A JOUR LORDERID VTFF IL EST 58 PaymentData newPayment = new PaymentData() { Customer = customer, OrderId = paymentData.PaymentData.OrderId }; paymentRepository.SavePayment(newPayment); paymentRepository.Commit(); return(true); }