Пример #1
0
        public ActionResult Response(PaytmResponse data)
        {
            System.Diagnostics.Debug.WriteLine(Session["pid"]);
            if (data.STATUS == "TXN_SUCCESS")
            {
                int status = 11;

                PaymentDetail paymentDetail = db.PaymentDetails.FirstOrDefault(p => p.Id == payment_id);
                paymentDetail.TransactionId = data.TXNID;
                paymentDetail.StatusId      = status;
                paymentDetail.PaymentDate   = DateTime.Now.ToLocalTime();
                paymentDetail.PaymentMode   = data.PAYMENTMODE;;
                //for updating status in QuoteTable if payment is done
                // so now status is vehicle deliverd
                Quote quoteDetail = db.Quotes.FirstOrDefault(q => q.QuoteId == Quote_id);
                quoteDetail.StatusId = 12;

                var plist = db.PaymentDetails.Where(a => a.QuoteId == Quote_id).ToList();
                plist.Reverse();
                var d = plist.ElementAt(0);

                if (d.StatusId == 11)
                {
                    quoteDetail.StatusId = 13;
                }

                db.Entry(quoteDetail).State   = EntityState.Modified;
                db.Entry(paymentDetail).State = EntityState.Modified;

                db.SaveChanges();

                System.Diagnostics.Debug.WriteLine("Success");
                ViewBag.success = "Payment Done Succesfully ";
                //return View();
                return(RedirectToAction("/QuoteList/" + Quote_id));
            }
            else if (data.STATUS == "TXN_FAILURE")
            {
                var r = data.RESPMSG;
                ViewBag.fail = "Transaction Fail : " + r;
                System.Diagnostics.Debug.WriteLine("Failure");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("Pending");
            }
            return(View());
        }
Пример #2
0
        private HttpResponseMessage PerformPostPaymentJobs(PaytmResponse response)
        {
            HttpClient httpClient = new HttpClient();

            string baseUrl = ConfigurationManager.AppSettings["PaymentResponseJobsUrl"];// "http://localhost:1873/api/AfterPaymentJobs/ProcessOrderAfterPayment";

            var content = new StringContent(new JavaScriptSerializer().Serialize(response), Encoding.UTF8, "application/json");
            var result  = httpClient.PostAsync(baseUrl, content).Result;

            //result.Content.
            // paytmResponse.RESPMSG = parameters["RESPMSG"];
            //paytmResponse.STATUS = parameters["STATUS"];
            //var data = new { PaytmStatus = response.STATUS, PaytmStatusMessage = response.RESPMSG };

            //@Susant, Please check the result and perform the task accordingly. This books the appointment and returns the status as Success, Failure and Restricted.
            return(result);
        }
Пример #3
0
 public ActionResult PaytmResponse(PaytmResponse data)
 {
     return(View("PaytmResponse", data));
 }
Пример #4
0
        public ActionResult PaymentResponse1()
        {
            PaytmResponse paytmResponse = new PaytmResponse();
            String        merchantKey   = "z2jgxVaU1n8eGFn5";// "jBIWVeuQ0AKxUU%R";

            Dictionary <string, string> parameters = new Dictionary <string, string>();
            string paytmChecksum = "";

            foreach (string key in Request.Form.Keys)
            {
                parameters.Add(key.Trim(), Request.Form[key].Trim());
            }

            if (parameters.ContainsKey("CHECKSUMHASH"))
            {
                paytmChecksum = parameters["CHECKSUMHASH"];
                parameters.Remove("CHECKSUMHASH");
            }

            paytmResponse.BANKNAME     = parameters["BANKNAME"];
            paytmResponse.BANKTXNID    = parameters["BANKTXNID"];
            paytmResponse.CHECKSUMHASH = paytmChecksum;
            paytmResponse.CURRENCY     = parameters["CURRENCY"];
            paytmResponse.GATEWAYNAME  = parameters["BANKNAME"];
            paytmResponse.MID          = parameters["MID"];
            paytmResponse.ORDERID      = parameters["ORDERID"];
            paytmResponse.PAYMENTMODE  = parameters["PAYMENTMODE"];
            // PaytmResponse.PROMO_CAMP_ID = parameters["PROMO_CAMP_ID"];
            //PaytmResponse.PROMO_RESPCODE = parameters["PROMO_RESPCODE"];
            // PaytmResponse.PROMO_STATUS = parameters["PROMO_STATUS"];
            paytmResponse.RESPCODE  = parameters["RESPCODE"];
            paytmResponse.RESPMSG   = parameters["RESPMSG"];
            paytmResponse.STATUS    = parameters["STATUS"];
            paytmResponse.TXNAMOUNT = parameters["TXNAMOUNT"];
            paytmResponse.TXNDATE   = parameters["TXNDATE"];
            paytmResponse.TXNID     = parameters["TXNID"];

            // paytmResponse.UniqueReference = interimOrderDetail.UniqueReference;

            //String merchantKey = parameters["MerchantKey"];

            if (CheckSum.verifyCheckSum(merchantKey, parameters, paytmChecksum))
            {
                // string redirectAction = "";

                if (paytmResponse.STATUS == "TXN_SUCCESS")
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    //  interimOrderDetail.PaymentStatus = true;
                    //interimOrderDetail.PaymentResponse = "Success";

                    // Response.Write("Checksum Matched");
                    //redirectAction = "PaymentSuccessResponse";
                    //return RedirectToAction("PaymentSuccessResponse", PaytmResponse);
                }
                else if (paytmResponse.STATUS == "TXN_FAILURE")
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    // interimOrderDetail.PaymentStatus = false;
                    //interimOrderDetail.PaymentResponse = "Failure";

                    // redirectAction = "PaymentFailureResponse";
                    //return RedirectToAction("PaymentFailureResponse", PaytmResponse);
                }
                else
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    // interimOrderDetail.PaymentStatus = false;
                    // //interimOrderDetail.PaymentResponse = "Pending";

                    // redirectAction = "PaymentPendingResponse";
                    //return RedirectToAction("PaymentPendingResponse", PaytmResponse);
                }

                //using (var db = new Care4UContext())
                //{
                //	db.InterimOrderDeatils.Attach(interimOrderDetail);
                //	db.Entry(interimOrderDetail).Property(p => p.PaymentStatus).IsModified = true;
                //	db.SaveChanges();
                //}


                if (paytmResponse.STATUS == "TXN_SUCCESS")
                {
                    // return View("PaymentSuccessResponse");
                    return(RedirectToAction("PaymentSuccessResponse"));
                }
                else if (paytmResponse.STATUS == "TXN_FAILURE")
                {
                    // return View("PaymentFailureResponse");
                    return(RedirectToAction("PaymentFailureResponse"));
                }
                else
                {
                    //return View("PaymentPendingResponse");
                    return(RedirectToAction("PaymentPendingResponse"));
                }
                //if (res.Data)
                //	return RedirectToAction(redirectAction, paytmResponse);
                //else
                //	return RedirectToAction("PaymentFailureResponse", paytmResponse);
            }
            else
            {
                Response.Write("Checksum MisMatch");
            }
            return(View());
        }
Пример #5
0
        public ActionResult AfterCheckResponse(PaytmResponse paytmResponse)
        {
            try
            {
                // Get the IntermediarOrderDetail with the id provided
                InterimOrderDeatils interimOrderDetail = _context.InterimOrderDeatils.FirstOrDefault(t => t.UniqueReference.ToLower() == paytmResponse.UniqueReference.ToLower());
                if (interimOrderDetail == null)
                {
                    throw new Exception("No record found.");
                }

                //Get the Care4uPgConfig with the groupEntityId available in the IntermediarOrderDetail fetched.
                // Get configuaration by ApplicationName,ModuleName,GroupEntityID,PaymentGateWay
                Care4UPgConfig pgConfig = _context.Care4uPgConfig.FirstOrDefault(t => t.Module.ToUpper().Equals(interimOrderDetail.PaymentForModule.ToUpper()) &&
                                                                                 t.PaymentGateWayType.ToUpper().Equals("PAYTM") &&
                                                                                 t.IsActive);

                if (pgConfig == null)
                {
                    throw new Exception("Payment for this module has not been enabled.");
                }


                //PaytmResponse paytmResponse = new PaytmResponse();
                String merchantKey = pgConfig.Paytm_MerchantKey;// "jBIWVeuQ0AKxUU%R";

                Dictionary <string, string> parameters = new Dictionary <string, string>();
                string paytmChecksum = "";
                foreach (string key in Request.Form.Keys)
                {
                    parameters.Add(key.Trim(), Request.Form[key].Trim());
                }

                if (parameters.ContainsKey("CHECKSUMHASH"))
                {
                    paytmChecksum = parameters["CHECKSUMHASH"];
                    parameters.Remove("CHECKSUMHASH");
                }

                //paytmResponse.BANKNAME = parameters["BANKNAME"];
                //paytmResponse.BANKTXNID = parameters["BANKTXNID"];
                //paytmResponse.CHECKSUMHASH = paytmChecksum;
                //paytmResponse.CURRENCY = parameters["CURRENCY"];
                //paytmResponse.GATEWAYNAME = parameters["BANKNAME"];
                //paytmResponse.MID = parameters["MID"];
                //paytmResponse.ORDERID = parameters["ORDERID"];
                //paytmResponse.PAYMENTMODE = parameters["PAYMENTMODE"];
                //// PaytmResponse.PROMO_CAMP_ID = parameters["PROMO_CAMP_ID"];
                ////PaytmResponse.PROMO_RESPCODE = parameters["PROMO_RESPCODE"];
                //// PaytmResponse.PROMO_STATUS = parameters["PROMO_STATUS"];
                //paytmResponse.RESPCODE = parameters["RESPCODE"];
                //paytmResponse.RESPMSG = parameters["RESPMSG"];
                //paytmResponse.STATUS = parameters["STATUS"];
                //paytmResponse.TXNAMOUNT = parameters["TXNAMOUNT"];
                //paytmResponse.TXNDATE = parameters["TXNDATE"];
                //paytmResponse.TXNID = parameters["TXNID"];

                //paytmResponse.UniqueReference = interimOrderDetail.UniqueReference;

                //String merchantKey = parameters["MerchantKey"];


                string redirectAction = "";

                if (paytmResponse.STATUS == "TXN_SUCCESS")
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    interimOrderDetail.PaymentStatus   = true;
                    interimOrderDetail.PaymentResponse = "Success";

                    //  Response.Write("Checksum Matched");
                    redirectAction = "PaymentSuccessResponse";
                    //return RedirectToAction("PaymentSuccessResponse", PaytmResponse);
                }
                else if (paytmResponse.STATUS == "TXN_FAILURE")
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    interimOrderDetail.PaymentStatus   = false;
                    interimOrderDetail.PaymentResponse = "Failure";

                    redirectAction = "PaymentFailureResponse";
                    //return RedirectToAction("PaymentFailureResponse", PaytmResponse);
                }
                else
                {
                    //Update the IntermediarOrderDetails payment status, response and other records.
                    interimOrderDetail.PaymentStatus   = false;
                    interimOrderDetail.PaymentResponse = "Pending";

                    redirectAction = "PaymentPendingResponse";
                    //return RedirectToAction("PaymentPendingResponse", PaytmResponse);
                }

                //using (var db = new Care4UContext())
                //{
                //	db.InterimOrderDeatils.Attach(interimOrderDetail);
                //	db.Entry(interimOrderDetail).Property(p => p.PaymentStatus).IsModified = true;
                //	db.SaveChanges();
                //}

                _context.InterimOrderDeatils.Attach(interimOrderDetail);
                _context.Entry(interimOrderDetail).Property(p => p.PaymentStatus).IsModified = true;
                //_context.Entry(interimOrderDetail).Property(p => p.PaymentResponse).IsModified = true;
                _context.SaveChanges();
                var result = PerformPostPaymentJobs(paytmResponse);
                if (paytmResponse.STATUS == "TXN_SUCCESS")
                {
                    if (agentType == "MobileApp")
                    {
                        return(RedirectToAction("PaymentSuccessResponse"));
                    }
                    else if (agentType == "WebSite")
                    {
                        return(View("../Payment/HealthProWebAfterPgResponse", interimOrderDetail));
                    }
                    else
                    {
                        return(RedirectToAction("PaymentSuccessResponse"));
                    }
                }
                else if (paytmResponse.STATUS == "TXN_FAILURE")
                {
                    if (agentType == "MobileApp")
                    {
                        return(RedirectToAction("PaymentFailureResponse"));
                    }
                    else if (agentType == "WebSite")
                    {
                        return(View("../Payment/HealthProWebAfterPgResponse", interimOrderDetail));
                    }
                    else
                    {
                        return(RedirectToAction("PaymentSuccessResponse"));
                    }
                }
                else
                {
                    if (agentType == "MobileApp")
                    {
                        return(RedirectToAction("PaymentPendingResponse"));
                    }
                    else if (agentType == "WebSite")
                    {
                        return(View("../Payment/HealthProWebAfterPgResponse", interimOrderDetail));
                    }
                    else
                    {
                        return(RedirectToAction("PaymentSuccessResponse"));
                    }
                }
                //if (res.Data)
                //	return RedirectToAction(redirectAction, paytmResponse);
                //else
                //	return RedirectToAction("PaymentFailureResponse", paytmResponse);

                return(null);
            }
            catch (Exception ex)
            {
                return(null);
            }

            //return View();
        }
Пример #6
0
        public ActionResult PaymentResponse(string interimOrderDeatilsId)
        {
            try
            {
                InterimOrderDeatils interimOrderDetail = _context.InterimOrderDeatils.FirstOrDefault(t => t.UniqueReference.ToLower() == interimOrderDeatilsId.ToLower());
                var response = System.Web.Helpers.Json.Decode(interimOrderDetail.OrderDetails.ToString())[0];

                if (interimOrderDetail == null)
                {
                    throw new Exception("No record found.");
                }

                //Get the Care4uPgConfig with the groupEntityId available in the IntermediarOrderDetail fetched.
                // Get configuaration by ApplicationName,ModuleName,GroupEntityID,PaymentGateWay
                Care4UPgConfig pgConfig = _context.Care4uPgConfig.FirstOrDefault(t => t.Module.ToUpper().Equals(interimOrderDetail.PaymentForModule.ToUpper()) &&
                                                                                 t.PaymentGateWayType.ToUpper().Equals("PAYTM") &&
                                                                                 t.IsActive);

                if (pgConfig == null)
                {
                    throw new Exception("Payment for this module has not been enabled.");
                }

                PaytmResponse paytmResponse = new PaytmResponse();
                String        merchantKey   = pgConfig.Paytm_MerchantKey;// "jBIWVeuQ0AKxUU%R";

                Dictionary <string, string> parameters = new Dictionary <string, string>();
                string paytmChecksum = "";
                foreach (string key in Request.Form.Keys)
                {
                    parameters.Add(key.Trim(), Request.Form[key].Trim());
                }

                if (parameters.ContainsKey("CHECKSUMHASH"))
                {
                    paytmChecksum = parameters["CHECKSUMHASH"];
                    parameters.Remove("CHECKSUMHASH");
                }

                paytmResponse.BANKNAME     = parameters["BANKNAME"];
                paytmResponse.BANKTXNID    = parameters["BANKTXNID"];
                paytmResponse.CHECKSUMHASH = paytmChecksum;
                paytmResponse.CURRENCY     = parameters["CURRENCY"];
                paytmResponse.GATEWAYNAME  = parameters["BANKNAME"];
                paytmResponse.MID          = parameters["MID"];
                paytmResponse.ORDERID      = parameters["ORDERID"];
                paytmResponse.PAYMENTMODE  = parameters["PAYMENTMODE"];
                // PaytmResponse.PROMO_CAMP_ID = parameters["PROMO_CAMP_ID"];
                //PaytmResponse.PROMO_RESPCODE = parameters["PROMO_RESPCODE"];
                // PaytmResponse.PROMO_STATUS = parameters["PROMO_STATUS"];
                paytmResponse.RESPCODE  = parameters["RESPCODE"];
                paytmResponse.RESPMSG   = parameters["RESPMSG"];
                paytmResponse.STATUS    = parameters["STATUS"];
                paytmResponse.TXNAMOUNT = parameters["TXNAMOUNT"];
                paytmResponse.TXNDATE   = parameters["TXNDATE"];
                paytmResponse.TXNID     = parameters["TXNID"];
                //string checksum = CheckSum.generateCheckSum(PaytmRequest.MerchantKey, parameters);
                paytmResponse.UniqueReference = interimOrderDeatilsId;


                //String merchantKey = parameters["MerchantKey"];



                Dictionary <string, string> parameters1 = new Dictionary <string, string>();
                //parameters.Add("REQUEST_TYPE", "DEFAULT");
                //parameters.Add("AUTH_MODE", "3D");
                // parameters.Add("PAYMENT_TYPE_ID", "DC");

                parameters1.Add("MID", paytmResponse.MID);

                parameters1.Add("ORDER_ID", paytmResponse.ORDERID);

                string checksum = CheckSum.generateCheckSum(merchantKey, parameters1);

                paytmResponse.CHECKSUMHASH = checksum;
                return(View(paytmResponse));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }