public ActionResult Notification() { var response = new BoolResponse { IsValid = false, Message = "" }; response.RecordId = Request.Params["bid"]; // this can hppen in situation when bid is suffixed to eth query string twice breaking the whole code /// so a simple handling fro the same has been put in /// if (response.RecordId.Contains(",")) { var tmpId = response.RecordId.Split(','); response.RecordId = tmpId[0]; } PaymentModel payment = null; var settingResponse = _checkoutApi.PaymentSetting(PaymentMethodTypes.MasterCard.ToString()); var setting = settingResponse.Result; var mcard = new MasterCardApi(setting); if (Request["orderId"] != null) { var refOrderId = Request["transId"]; string orderId = Request.Params["orderId"]; var orderResponse = _orderApi.GetOrdDetail(Sanitizer.GetSafeHtmlFragment(refOrderId)); var order = orderResponse.Result; string paymentId = orderId.Split('-')[1]; payment = order.Payments.FirstOrDefault(x => x.Id == paymentId); var paymentRequest = new PostProcessPaymentRequest { CurrencyCode = order.CurrencyCode, Order = order, OrderTotal = payment.OrderAmount, Payment = payment, }; var paymentResponse = setting.PostProcessPayment(paymentRequest); _checkoutApi.UpdatePayment(refOrderId, paymentResponse.Payment); response.RecordId = order.Id; response.IsValid = paymentResponse.Success; if (!response.IsValid) { response.RecordId = Request.Params["bid"]; if (paymentResponse.Errors.Any()) { response.Message = paymentResponse.Errors[0]; } } else { SiteUtils.ResetBasketCookie(); } } return(View(CustomViews.PAYMENT_RESPONSE, response)); }
public ActionResult Check3DSecure(string sessionId, decimal amount, string currency, string secure3DauthUrl, string secure3DId) { var settingResponse = _checkoutApi.PaymentSetting(PaymentMethodTypes.MasterCard.ToString()); var setting = settingResponse.Result; var mcard = new MasterCardApi(setting); var secure3D = mcard.Check3DSecureEnrollment(sessionId, amount, currency, secure3DauthUrl, secure3DId); return(JsonSuccess(secure3D, JsonRequestBehavior.AllowGet)); }
public ProcessPaymentResult ProcessPayment(ProcessPaymentRequest processPaymentRequest) { var resp = new ProcessPaymentResult { TimeStamp = MasterCardApi.GetTimestamp(Settings.Signature, processPaymentRequest.OrderNo + "-" + processPaymentRequest.PaymentId, processPaymentRequest.OrderTotal, processPaymentRequest.CurrencyCode) }; ; resp.OrderId = processPaymentRequest.OrderId; resp.OrderTotal = processPaymentRequest.OrderTotal.ToString(); resp.CurrencyCode = processPaymentRequest.CurrencyCode; resp.RefOrderId = processPaymentRequest.OrderNo + "-" + processPaymentRequest.PaymentId; resp.ReturnUrl = Settings.NotificationUrl; return(resp); }