public async Task <IActionResult> PayUMoneySuccessful(FormCollection form)
        {
            string status = Request.Form["status"].ToString();

            string output = "false";

            if (status == "success")
            {
                string payuMoneyId = Request.Form["payuMoneyId"].ToString();
                string PG_TYPE     = Request.Form["PG_TYPE"].ToString();
                string txnid       = Request.Form["txnid"].ToString();
                string amount      = Request.Form["amount"].ToString();
                string productinfo = Request.Form["productinfo"].ToString();
                Domain.Socioboard.Models.User         user       = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.User>("User");
                Domain.Socioboard.Models.Package      _Package   = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.Package>("Package");
                List <KeyValuePair <string, string> > Parameters = new List <KeyValuePair <string, string> >();
                Parameters.Add(new KeyValuePair <string, string>("userId", user.Id.ToString()));
                Parameters.Add(new KeyValuePair <string, string>("UserName", user.FirstName + " " + user.LastName));
                Parameters.Add(new KeyValuePair <string, string>("email", user.EmailId));
                Parameters.Add(new KeyValuePair <string, string>("amount", amount));
                Parameters.Add(new KeyValuePair <string, string>("PaymentType", user.PaymentType.ToString()));
                Parameters.Add(new KeyValuePair <string, string>("trasactionId", txnid));
                Parameters.Add(new KeyValuePair <string, string>("paymentId", payuMoneyId));
                HttpResponseMessage response = await WebApiReq.PostReq("/api/PaymentTransaction/UpgradeAccount", Parameters, "", "", _appSettings.ApiDomain);

                if (response.IsSuccessStatusCode)
                {
                    try
                    {
                        string data = await response.Content.ReadAsStringAsync();

                        if (data == "payment done")
                        {
                            List <KeyValuePair <string, string> > _Parameters = new List <KeyValuePair <string, string> >();
                            // _Parameters.Add(new KeyValuePair<string, string>("Id", user.Id.ToString()));
                            HttpResponseMessage _response = await WebApiReq.GetReq("/api/User/GetUser?Id=" + user.Id.ToString(), "", "", _appSettings.ApiDomain);

                            if (response.IsSuccessStatusCode)
                            {
                                try
                                {
                                    Domain.Socioboard.Models.User _user = await _response.Content.ReadAsAsync <Domain.Socioboard.Models.User>();

                                    HttpContext.Session.SetObjectAsJson("User", _user);
                                    //SendInvoiceMerchant(_user.PhoneNumber, _user.EmailId, _user.FirstName, amount, productinfo, txnid, _appSettings.PayUMoneyURL);
                                    // output = "true";
                                    return(RedirectToAction("Index", "Home"));
                                }
                                catch { }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        return(RedirectToAction("Index", "Index"));
                    }
                }
            }
            return(RedirectToAction("Index", "Index"));
        }
 public static Domain.Socioboard.Models.Package GetPackage(string packagename, Model.DatabaseRepository dbr)
 {
     try
     {
         Domain.Socioboard.Models.Package _package = dbr.Single <Domain.Socioboard.Models.Package>(t => t.packagename.Equals(packagename));
         return(_package);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Ejemplo n.º 3
0
        public async Task <IActionResult> paymentWithPayUMoney(bool contesnt)
        {
            Domain.Socioboard.Models.User         user       = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.User>("User");
            Domain.Socioboard.Models.Package      _Package   = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.Package>("Package");
            List <KeyValuePair <string, string> > Parameters = new List <KeyValuePair <string, string> >();

            Parameters.Add(new KeyValuePair <string, string>("key", _appSettings.key));
            string amount = (Convert.ToDouble(_Package.amount) * Convert.ToDouble(_appSettings.moneyconvertion)).ToString();
            string txnid  = Generatetxnid();

            Parameters.Add(new KeyValuePair <string, string>("txnid", txnid));
            Parameters.Add(new KeyValuePair <string, string>("amount", amount));
            Parameters.Add(new KeyValuePair <string, string>("productinfo", _Package.packagename));
            Parameters.Add(new KeyValuePair <string, string>("firstname", user.FirstName));
            Parameters.Add(new KeyValuePair <string, string>("email", user.EmailId));
            Parameters.Add(new KeyValuePair <string, string>("phone", user.PhoneNumber));
            Parameters.Add(new KeyValuePair <string, string>("surl", _appSettings.surl));
            Parameters.Add(new KeyValuePair <string, string>("furl", _appSettings.failUrl));
            string hashString = _appSettings.key.ToString() + "|" + txnid + "|" + amount + "|" + _Package.packagename.ToString() + "|" + user.FirstName.ToString() + "|" + user.EmailId.ToString() + "|||||||||||" + _appSettings.salt.ToString();
            string hash       = Generatehash512(hashString);

            Parameters.Add(new KeyValuePair <string, string>("hash", hash));
            Parameters.Add(new KeyValuePair <string, string>("service_provider", "payu_paisa"));
            HttpResponseMessage response = await WebApiReq.PostReq("/_payment", Parameters, "", "", "https://secure.payu.in");

            if (response.IsSuccessStatusCode)
            {
                // string data = await response.Content.ReadAsStringAsync();
                if (contesnt != false)
                {
                    return(Content(response.RequestMessage.RequestUri.OriginalString));
                }
                else
                {
                    //return Redirect(response.RequestMessage.RequestUri.OriginalString);
                    //return Redirect(response.RequestMessage.RequestUri.OriginalString);
                    return(Content(response.RequestMessage.RequestUri.OriginalString));
                }
            }
            else
            {
                return(null);
            }
        }
        public async Task <IActionResult> UpgradeAccount(string packagename)
        {
            Domain.Socioboard.Models.User user = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.User>("User");
            if (user == null)
            {
                return(RedirectToAction("Index", "Index"));
            }
            if (packagename != "Free")
            {
                List <KeyValuePair <string, string> > Parameters = new List <KeyValuePair <string, string> >();
                Parameters.Add(new KeyValuePair <string, string>("packagename", packagename));
                HttpResponseMessage response = await WebApiReq.PostReq("/api/PaymentTransaction/GetPackage", Parameters, "", "", _appSettings.ApiDomain);

                if (response.IsSuccessStatusCode)
                {
                    try
                    {
                        Domain.Socioboard.Models.Package _Package = await response.Content.ReadAsAsync <Domain.Socioboard.Models.Package>();

                        HttpContext.Session.SetObjectAsJson("Package", _Package);

                        if (user.CreateDate.AddDays(29) <= DateTime.UtcNow)
                        {
                            if (user.PaymentType == Domain.Socioboard.Enum.PaymentType.paypal)
                            {
                                return(Content(Helpers.Payment.RecurringPaymentWithPayPalUpgrade(_Package.amount, _Package.packagename, user.FirstName + " " + user.LastName, user.PhoneNumber, user.EmailId, "USD", _appSettings.paypalemail, _appSettings.callBackUrl, _appSettings.failUrl, _appSettings.callBackUrl, _appSettings.cancelurl, _appSettings.notifyUrl, "", _appSettings.PaypalURL)));
                            }
                            else
                            {
                                return(RedirectToAction("paymentWithPayUMoney", "Index"));
                            }
                        }
                        else
                        {
                            if (user.PaymentType == Domain.Socioboard.Enum.PaymentType.paypal)
                            {
                                return(Content(Helpers.Payment.RecurringPaymentWithPayPalUpgrade(_Package.amount, _Package.packagename, user.FirstName + " " + user.LastName, user.PhoneNumber, user.EmailId, "USD", _appSettings.paypalemail, _appSettings.callBackUrl, _appSettings.failUrl, _appSettings.callBackUrl, _appSettings.cancelurl, _appSettings.notifyUrl, "", _appSettings.PaypalURL)));
                            }
                            else
                            {
                                return(RedirectToAction("paymentWithPayUMoney", "Index"));
                            }
                        }
                    }
                    catch { }
                }
            }
            else
            {
                List <KeyValuePair <string, string> > _Parameters = new List <KeyValuePair <string, string> >();
                _Parameters.Add(new KeyValuePair <string, string>("userId", user.Id.ToString()));
                HttpResponseMessage _response = await WebApiReq.PostReq("/api/User/UpdateFreeUser", _Parameters, "", "", _appSettings.ApiDomain);

                if (_response.IsSuccessStatusCode)
                {
                    try
                    {
                        Domain.Socioboard.Models.User _user = await _response.Content.ReadAsAsync <Domain.Socioboard.Models.User>();

                        HttpContext.Session.SetObjectAsJson("User", _user);
                        return(Content(""));
                    }
                    catch { }
                }
            }
            return(RedirectToAction("Index", "Index"));
        }
        public async Task <IActionResult> PaymentSuccessful()
        {
            string output = "false";
            string plan   = "";

            Domain.Socioboard.Models.User    user     = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.User>("User");
            Domain.Socioboard.Models.Package _Package = HttpContext.Session.GetObjectFromJson <Domain.Socioboard.Models.Package>("Package");
            string trasactionId = Generatetxnid();
            string paymentId    = Request.Form["subscr_id"];

            if (_Package.packagename == "Free")
            {
                plan = "Free";
            }
            else if (_Package.packagename == "Deluxe")
            {
                plan = "Deluxe";
            }
            else if (_Package.packagename == "Premium")
            {
                plan = "Premium";
            }
            else if (_Package.packagename == "Topaz")
            {
                plan = "Topaz";
            }
            else if (_Package.packagename == "Platinum")
            {
                plan = "Platinum";
            }
            else if (_Package.packagename == "Gold")
            {
                plan = "Gold";
            }
            else if (_Package.packagename == "Ruby")
            {
                plan = "Ruby";
            }
            else if (_Package.packagename == "Standard")
            {
                plan = "Standard";
            }
            List <KeyValuePair <string, string> > Parameters = new List <KeyValuePair <string, string> >();

            Parameters.Add(new KeyValuePair <string, string>("userId", user.Id.ToString()));
            Parameters.Add(new KeyValuePair <string, string>("UserName", user.FirstName + " " + user.LastName));
            Parameters.Add(new KeyValuePair <string, string>("email", user.EmailId));
            Parameters.Add(new KeyValuePair <string, string>("amount", _Package.amount));
            Parameters.Add(new KeyValuePair <string, string>("PaymentType", user.PaymentType.ToString()));
            Parameters.Add(new KeyValuePair <string, string>("trasactionId", trasactionId));
            Parameters.Add(new KeyValuePair <string, string>("paymentId", paymentId));
            Parameters.Add(new KeyValuePair <string, string>("accType", plan));
            HttpResponseMessage response = await WebApiReq.PostReq("/api/PaymentTransaction/UpgradeAccount", Parameters, "", "", _appSettings.ApiDomain);

            if (response.IsSuccessStatusCode)
            {
                try
                {
                    string data = await response.Content.ReadAsStringAsync();

                    if (data == "payment done")
                    {
                        List <KeyValuePair <string, string> > _Parameters = new List <KeyValuePair <string, string> >();
                        //_Parameters.Add(new KeyValuePair<string, string>("Id", user.Id.ToString()));
                        HttpResponseMessage _response = await WebApiReq.GetReq("/api/User/GetUser?Id=" + user.Id.ToString(), "", "", _appSettings.ApiDomain);

                        if (response.IsSuccessStatusCode)
                        {
                            try
                            {
                                Domain.Socioboard.Models.User _user = await _response.Content.ReadAsAsync <Domain.Socioboard.Models.User>();

                                HttpContext.Session.SetObjectAsJson("User", _user);
                                return(RedirectToAction("Index", "Index"));
                            }
                            catch { }
                        }
                    }
                }
                catch (Exception e)
                {
                    return(RedirectToAction("Index", "Index"));
                }
            }
            return(Content(output));
        }