private bool ProcessThePayment(Order order, Secure3DHandler model) { var result = false; var iyzicoPaymentSettings = _settingService.LoadSetting <IyzicoPaymentSettings>(_storeContext.CurrentStore.Id); Armut.Iyzipay.Options options = new Armut.Iyzipay.Options(); options.ApiKey = iyzicoPaymentSettings.APIKey; options.SecretKey = iyzicoPaymentSettings.SecretKey; options.BaseUrl = iyzicoPaymentSettings.APIUrl; if (model.status.Equals("success")) { CreateThreedsPaymentRequest request = new CreateThreedsPaymentRequest(); // request.Locale = Locale.TR.ToString(); request.ConversationId = model.conversationId; request.PaymentId = model.paymentId; request.ConversationData = model.conversationData; // complete the 3DS ThreedsPayment threedsPayment = ThreedsPayment.Create(request, options); if (threedsPayment.Status.Equals("success")) { result = true; order.OrderStatus = OrderStatus.Processing; order.PaymentStatus = PaymentStatus.Paid; } else { order.OrderStatus = OrderStatus.Cancelled; order.PaymentStatus = PaymentStatus.Voided; OrderError(threedsPayment.ErrorMessage, order); } } else { order.OrderStatus = OrderStatus.Cancelled; order.PaymentStatus = PaymentStatus.Voided; OrderError($"Error mdStatus:{model.mdStatus}", order); } // clear card informations // if you want to keep that informations ignore the below part order.CardCvv2 = string.Empty; order.CardName = string.Empty; order.CardNumber = string.Empty; order.CardExpirationYear = string.Empty; order.CardExpirationMonth = string.Empty; order.CardType = string.Empty; order.MaskedCreditCardNumber = string.Empty; order.AllowStoringCreditCardNumber = false; _orderService.UpdateOrder(order); return(result); }
public IActionResult Handler([FromForm] Secure3DHandler model) { if (ModelState.IsValid) { var order = _orderService.GetOrderByGuid(new Guid(model.conversationId)); if (order != null) { var result = ProcessThePayment(order, model); if (result) { return(RedirectToRoute("CheckoutCompleted", new { orderId = order.Id })); } } } return(RedirectToAction("Index", "Home", new { area = "" })); }