示例#1
0
        // GET: Paypal

        public ActionResult Confirmacion(string codigo)
        {
            int clave      = int.Parse(Session["CodigoTarea"].ToString());
            int estudiante = int.Parse(codigo);

            ViewData["CodigoTarea"] = clave;
            if (Request.HttpMethod != "POST")
            {
                authToken = "UQZqpZAq_ZGRCh_3d__MLmA4IxIBkIm1U4AowLfjqYQ47C_Y7hUZsX94_3a";


                ServicePointManager.SecurityProtocol  = (SecurityProtocolType)3072;
                ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
                ServicePointManager.UseNagleAlgorithm = true;
                ServicePointManager.Expect100Continue = true;
                ServicePointManager.CheckCertificateRevocationList = true;
                ServicePointManager.DefaultConnectionLimit         = ServicePointManager.DefaultPersistentConnectionLimit;

                txToken = Request.QueryString.Get("tx");

                query = string.Format("cmd=_notify-synch&tx={0}&at={1}", txToken, authToken);

                string         url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

                req.Method        = "POST";
                req.ContentType   = "application/x-www-form-urlencoded";
                req.ContentLength = query.Length;


                StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                stOut.Write(query);
                stOut.Close();

                StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
                strResponse = stIn.ReadToEnd();
                stIn.Close();

                if (strResponse.StartsWith("SUCCESS"))
                {
                    PDTHolder pdt = PDTHolder.Parse(strResponse);
                    ViewBag.mensaje = string.Format("Cuenta en la que se realizo el pago {0} {1} [{2}] Monto del pago {3} {4}!",
                                                    pdt.PayerFirstName, pdt.PayerLastName, pdt.PayerEmail, pdt.GrossTotal, pdt.Currency);
                    if (pdt.PaymentStatus == "Completed")
                    {
                        int empleador = int.Parse(Session["Codigo"].ToString());
                        ObjDAO.Aceptarpostulados(estudiante, clave);
                        msg.AgregarPago(empleador, pdt.GrossTotal, pdt.PayerEmail, clave, estudiante);
                    }
                }
                else
                {
                    PDTHolder pdt = PDTHolder.Parse(strResponse);
                    ViewBag.mensaje = string.Format("Cuenta en la que se realizo el pago {0} {1} [{2}] Monto del pago {3} {4}! no fue correcta, por favor contacta al administrador",
                                                    pdt.PayerFirstName, pdt.PayerLastName, pdt.PayerEmail, pdt.GrossTotal, pdt.Currency);
                }
            }
            //return Redirect("~/Tareas/DetalleTareaDispo?Codigo='" + clave + "'");
            return(View());
        }
示例#2
0
        public ActionResult Checkout(int Id)
        {
            double dollarRate = double.Parse(Settings.get("DollarRate"));

            ViewBag.TicketId = Id;
            Ticket ticket = unitOfWork.TicketRepository.GetById(Id);
            double shippingCost;

            if (ticket.ShippingCost == null)
            {
                shippingCost = double.Parse(Settings.get("ShippingCost"));
            }
            else
            {
                shippingCost = (double)ticket.ShippingCost;
            }
            string    eventname = Utils.ConvertVN(ticket.Event.EventName);
            PDTHolder pp        = new PDTHolder()
            {
                item_name = eventname,
                amount    = System.Math.Round((ticket.SellPrice / dollarRate), 2),
                shipping  = System.Math.Round((shippingCost / dollarRate), 2),
                custom    = ticket.TicketId,
            };

            Session["BuyingTicket"] = ticket;
            return(View(pp));
        }
示例#3
0
 public IActionResult Success()
 {
     try
     {
         var result = PDTHolder.Success(Request.Query["tx"]);
         if (result != null)
         {
             var membership    = ocmde.MemberShips.Find(result.MemberShipId);
             var accountVendor = ocmde.AccountVendors.SingleOrDefault(v => v.Email.Equals(HttpContext.Session.GetString("email_customer")));
             MemberShipVendor memberShipVendor = new MemberShipVendor()
             {
                 MemerShipId = membership.Id,
                 VendorId    = accountVendor.VendorId,
                 Price       = membership.Price,
                 StartDate   = DateTime.Now,
                 EndDate     = DateTime.Now.AddMonths(membership.Month)
             };
             ocmde.MemberShipVendors.Add(memberShipVendor);
             ocmde.SaveChanges();
             ViewBag.msg = "Success";
         }
         else
         {
             ViewBag.msg = "Error";
         }
         return(View("Success"));
     }
     catch (Exception e)
     {
         throw;
     }
 }
 public ActionResult Success()
 {
     try
     {
         var result = PDTHolder.Success(Request.QueryString.Get("tx"));
         if (result != null)
         {
             var membership = ocmde.MemberShips.Find(result.MemberShipId);
             var vendor     = (Clitzy.Models.Vendor)SessionPersister.account;
             MemberShipVendor memberShipVendor = new MemberShipVendor()
             {
                 MemerShipId = membership.Id,
                 VendorId    = vendor.Id,
                 Price       = membership.Price,
                 StartDate   = DateTime.Now,
                 EndDate     = DateTime.Now.AddMonths(membership.Month)
             };
             ocmde.MemberShipVendors.Add(memberShipVendor);
             ocmde.SaveChanges();
             ViewBag.msg = "Success";
         }
         else
         {
             ViewBag.msg = "Error";
         }
         return(View("Success"));
     }
     catch (Exception e)
     {
         return(View("Error", new HandleErrorInfo(e, "Vendors", "Success")));
     }
 }
示例#5
0
        public IActionResult Success(CheckoutViewModel checkoutViewModel)
        {
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            checkoutViewModel.cartItem = SessionHelper.GetObjectFromJson <List <CartItem> >(HttpContext.Session, "cart");
            SessionHelper.RemoveSession(HttpContext.Session, "cart");
            return(View(checkoutViewModel));
        }
示例#6
0
        public IActionResult Success()
        {
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            if (result != null)
            {
                return(RedirectToAction("CheckOut", new { id = "paypal" }));
            }
            return(RedirectToAction("False"));
        }
示例#7
0
        public IActionResult Success()
        {
            //PDTHolder pdtHolder = new PDTHolder();
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            Debug.WriteLine("First Name: " + result.PayerFirstName);
            Debug.WriteLine("Last Name: " + result.PayerLastName);
            Debug.WriteLine("Email: " + result.PayerEmail);
            Debug.WriteLine("InvoiceNumber: " + result.InvoiceNumber);
            Debug.WriteLine("GrossTotal: " + result.GrossTotal);
            return(View("Success"));
        }
示例#8
0
        public async Task <IActionResult> Success(CheckoutViewModel checkoutViewModel)
        {
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            checkoutViewModel.cartItem     = SessionHelper.GetObjectFromJson <List <CartItem> >(HttpContext.Session, "cart");
            checkoutViewModel.BillCheckout = SessionHelper.GetObjectFromJson <BillViewModel>(HttpContext.Session, "billInfo");

            if (checkoutViewModel.BillCheckout == null)
            {
                return(NotFound());
            }

            var currentBill = _mapper.Map <Bill>(checkoutViewModel.BillCheckout);

            if (_signInManager.IsSignedIn(User))
            {
                var userId = _userManager.GetUserId(User);
                currentBill.AccountId = userId;
                var userUpdateMoney = await _userManager.FindByIdAsync(userId);

                var amount = checkoutViewModel.cartItem.Sum(x => x.product.DiscountPrice * x.Quantity) + Convert.ToDouble(userUpdateMoney.MoneySpended);
                userUpdateMoney.MoneySpended = amount;
                var resultUpdate = await _userManager.UpdateAsync(userUpdateMoney);
            }

            await _context.Bill.AddAsync(currentBill);

            var addedBill = await _context.SaveChangesAsync();

            if (addedBill > 0)
            {
                List <BillDetails> newDetail = new List <BillDetails>();
                foreach (var item in checkoutViewModel.cartItem)
                {
                    var temp = _mapper.Map <BillDetails>(item);
                    temp.BillId = currentBill.BillId;
                    newDetail.Add(temp);
                }

                await _context.BillDetails.AddRangeAsync(newDetail);

                var addedBillDetail = await _context.SaveChangesAsync();

                SessionHelper.RemoveSession(HttpContext.Session, "cart");
                SessionHelper.RemoveSession(HttpContext.Session, "billInfo");
            }

            return(View(checkoutViewModel));
        }
示例#9
0
        public ActionResult Success()
        {
            ViewBag.result = PDTHolder.Success(Request.QueryString.Get("tx"));

            PayPalModel newPayPal = new PayPalModel()
            {
                Date                = DateTime.Now,
                PaymentAmount       = ViewBag.result.GrossTotal,
                PayPalTransactionID = ViewBag.result.TransactionId
            };

            db.PayPalModel.Add(newPayPal);
            db.SaveChanges();

            return(View("Success"));
        }
示例#10
0
        public IActionResult Success()
        {
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            return(View());
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            getCompanyName();
            if (!Page.IsPostBack)
            {
                string strToken     = string.Empty;
                string strSubmitUrl = string.Empty;

                DataSet dsGetPaymentOption = new DataSet();

                dsGetPaymentOption = dbInfo.GetPaymentOptionDetails();

                if (dsGetPaymentOption.Tables.Count > 0)
                {
                    if (dsGetPaymentOption != null && dsGetPaymentOption.Tables.Count > 0 && dsGetPaymentOption.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow dtrow in dsGetPaymentOption.Tables[0].Rows)
                        {
                            ViewState["PaymentOption"] = Convert.ToString(dtrow["payment_Id"]);

                            //PayPalIpn
                            //ViewState["PayPalUrl"] = Convert.ToString(dtrow["PaypalUrl"]);
                            //ViewState["BusinessEmail"] = Convert.ToString(dtrow["PaypalEmail"]);

                            strSubmitUrl = Convert.ToString(dtrow["PaypalSubUrl"]);
                            strToken     = Convert.ToString(dtrow["PDTToken"]);
                        }
                    }
                }



                // authToken = ConfigurationManager.AppSettings["PDTToken"];

                authToken = strToken;
                //EmailGenerator _emailGenerator = new EmailGenerator();
                //bool mailStatus = _emailGenerator.userForgotPasswordEmail("Ritu", "", "*****@*****.**");

                //read in txn token from querystring
                txToken = Request.QueryString.Get("tx");


                query = string.Format("cmd=_notify-synch&tx={0}&at={1}", txToken, authToken);

                // Create the request back
                string         url = strSubmitUrl;
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

                // Set values for the request back
                req.Method        = "POST";
                req.ContentType   = "application/x-www-form-urlencoded";
                req.ContentLength = query.Length;

                // Write the request back IPN strings
                StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                stOut.Write(query);
                stOut.Close();

                // Do the request to PayPal and get the response
                StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
                strResponse = stIn.ReadToEnd();
                stIn.Close();

                // sanity check
                // Label2.Text = strResponse;

                // If response was SUCCESS, parse response string and output details
                if (strResponse.StartsWith("SUCCESS"))
                {
                    int    orderNum   = 0;
                    string strTransId = string.Empty;

                    int       insertOrder   = 0;
                    string    strOrdPayType = string.Empty;
                    PDTHolder pdt           = PDTHolder.Parse(strResponse);
                    lblResponse.Text = string.Format("Thank you {0} {1} [{2}] for your payment of {3} {4}!",
                                                     pdt.PayerFirstName, pdt.PayerLastName, pdt.PayerEmail, pdt.GrossTotal, pdt.Custom);



                    orderNum   = Convert.ToInt32(pdt.Custom);
                    strTransId = Convert.ToString(pdt.TransactionId);

                    if (Request.Cookies["DepositFund"] != null && Request.Cookies["DepositFund"].Value != "")
                    {
                        string StrFund = Convert.ToString(Request.Cookies["DepositFund"].Value);

                        string[] splitter = { "|@|" };
                        string[] dateInfo = StrFund.Split(splitter, StringSplitOptions.None);
                        int      i        = 0;
                        string   strfirst = dateInfo[i];
                        if (Convert.ToString(strfirst) == "NoFund")
                        {
                            string StrShop = Convert.ToString(Request.Cookies["ShoppingCart"].Value);
                            SplitShopString(StrShop);
                            string StrShipping = Convert.ToString(Request.Cookies["UserShopAddInfo"].Value);
                            SplitUserShopAddInfo(StrShipping);
                            getPaymentDropDown();
                            double totFinal = Convert.ToDouble(ViewState["intGroceryTot"]) + Convert.ToDouble(ViewState["strTippingAmt"]);
                            ViewState["TotalFinal"] = Convert.ToString(totFinal);

                            if (Request.Cookies["PaypalShopping"] != null && Request.Cookies["PaypalShopping"].Value != "")
                            {
                                strOrdPayType = Convert.ToString(Request.Cookies["PaypalShopping"].Value);

                                insertOrder = dbInfo.InsertOrderInformation(Convert.ToInt32(Request.Cookies["userId"].Value), Convert.ToString(ViewState["strAddress1"]), Convert.ToString(ViewState["strAddress2"]), Convert.ToString(ViewState["strCity"]), Convert.ToString(ViewState["strState"]), Convert.ToString(ViewState["strZip"]), Convert.ToString(ViewState["strSpecial"]), DateTime.Now, Convert.ToDateTime(ViewState["strDelDate"]), Convert.ToString(ViewState["strTimeValue"]), Convert.ToDouble(ViewState["TotalFinal"]), Convert.ToDouble(ViewState["grocerytotal"]), Convert.ToDouble(ViewState["strTippingAmt"]), Convert.ToDouble(ViewState["OrdSoda"]), Convert.ToDouble(ViewState["OrdDelFee"]), Convert.ToDouble(ViewState["CompCost"]), orderNum, Convert.ToString(strOrdPayType), Convert.ToDouble(ViewState["OrdTax"]), 1, 1, 1, 1, 1);
                                if (insertOrder > 0)
                                {
                                    //Insert order product Information
                                    InsertProductOrderInfo(insertOrder);
                                    //Insert Transaction Information
                                    if (strOrdPayType == Convert.ToString(AppConstants.strAFCC))
                                    {
                                        InsertTransactionDetails(strOrdPayType, insertOrder, strTransId);
                                    }
                                    //Insert Loyality Fund Information
                                    //InsertLoyalityFund(insertOrder);
                                    //update delivery capacity information
                                    UpdateDeliveryTime();
                                    HttpCookie DepositFund = new HttpCookie("DepositFund", null);
                                    Response.Cookies.Add(DepositFund);
                                    Response.Redirect("OrderConfirmation.aspx?orderId=" + insertOrder, false);
                                }
                            }
                            else
                            {
                                int intAdd = AddTransaction(strTransId, Convert.ToString(Request.Cookies["DepositFund"].Value));
                                if (intAdd == 1)
                                {
                                    HttpCookie DepositFund = new HttpCookie("DepositFund", null);
                                    Response.Cookies.Add(DepositFund);
                                    Response.Redirect("AccountFunds.aspx?checkDep=1", false);
                                }

                                //  Response.Redirect("AccountFunds.aspx?checkDep=1&id=" + strTransId, false);
                            }
                        }
                        else
                        {
                            int intAdd = AddTransaction(strTransId, Convert.ToString(Request.Cookies["DepositFund"].Value));
                            if (intAdd == 1)
                            {
                                HttpCookie DepositFund = new HttpCookie("DepositFund", null);
                                Response.Cookies.Add(DepositFund);
                                Response.Redirect("AccountFunds.aspx?checkDep=1", false);
                            }

                            // Response.Redirect("AccountFunds.aspx?checkDep=1&id=" + strTransId, false);
                        }
                    }
                }
            }
        }
示例#12
0
    public static PDTHolder Parse(string postData)
    {
        String    sKey, sValue;
        PDTHolder ph = new PDTHolder();

        try
        {
            //split response into string array using whitespace delimeter
            String[] StringArray = postData.Split('\n');

            // NOTE:

            /*
             * loop is set to start at 1 rather than 0 because first
             * string in array will be single word SUCCESS or FAIL
             * Only used to verify post data
             */

            // use split to split array we already have using "=" as delimiter
            int i;
            for (i = 1; i < StringArray.Length - 1; i++)
            {
                String[] StringArray1 = StringArray[i].Split('=');

                sKey   = StringArray1[0];
                sValue = HttpUtility.UrlDecode(StringArray1[1]);

                // set string vars to hold variable names using a switch
                switch (sKey)
                {
                case "mc_gross":
                    ph.GrossTotal = Convert.ToDouble(sValue);
                    break;

                case "invoice":
                    ph.InvoiceNumber = Convert.ToInt32(sValue);
                    break;

                case "payment_status":
                    ph.PaymentStatus = Convert.ToString(sValue);
                    break;

                case "first_name":
                    ph.PayerFirstName = Convert.ToString(sValue);
                    break;

                case "mc_fee":
                    ph.PaymentFee = Convert.ToDouble(sValue);
                    break;

                case "business":
                    ph.BusinessEmail = Convert.ToString(sValue);
                    break;

                case "payer_email":
                    ph.PayerEmail = Convert.ToString(sValue);
                    break;

                case "Tx Token":
                    ph.TxToken = Convert.ToString(sValue);
                    break;

                case "last_name":
                    ph.PayerLastName = Convert.ToString(sValue);
                    break;

                case "receiver_email":
                    ph.ReceiverEmail = Convert.ToString(sValue);
                    break;

                case "item_name":
                    ph.ItemName = Convert.ToString(sValue);
                    break;

                case "mc_currency":
                    ph.Currency = Convert.ToString(sValue);
                    break;

                case "txn_id":
                    ph.TransactionId = Convert.ToString(sValue);
                    break;

                case "custom":
                    ph.Custom = Convert.ToString(sValue);
                    break;

                case "subscr_id":
                    ph.SubscriberId = Convert.ToString(sValue);
                    break;
                }
            }

            return(ph);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public static PDTHolder Parse(string postData)
    {
        String sKey, sValue;
        PDTHolder ph = new PDTHolder();

        try
        {
            //split response into string array using whitespace delimeter
            String[] StringArray = postData.Split('\n');

            // NOTE:
            /*
            * loop is set to start at 1 rather than 0 because first
            string in array will be single word SUCCESS or FAIL
            Only used to verify post data
            */

            // use split to split array we already have using "=" as delimiter
            int i;
            for (i = 1; i < StringArray.Length - 1; i++)
            {
                String[] StringArray1 = StringArray[i].Split('=');

                sKey = StringArray1[0];
                sValue = HttpUtility.UrlDecode(StringArray1[1]);

                // set string vars to hold variable names using a switch
                switch (sKey)
                {
                    case "mc_gross":
                        ph.GrossTotal = Convert.ToDouble(sValue);
                        break;

                    case "invoice":
                        ph.InvoiceNumber = Convert.ToInt32(sValue);
                        break;

                    case "payment_status":
                        ph.PaymentStatus = Convert.ToString(sValue);
                        break;

                    case "first_name":
                        ph.PayerFirstName = Convert.ToString(sValue);
                        break;

                    case "mc_fee":
                        ph.PaymentFee = Convert.ToDouble(sValue);
                        break;

                    case "business":
                        ph.BusinessEmail = Convert.ToString(sValue);
                        break;

                    case "payer_email":
                        ph.PayerEmail = Convert.ToString(sValue);
                        break;

                    case "Tx Token":
                        ph.TxToken = Convert.ToString(sValue);
                        break;

                    case "last_name":
                        ph.PayerLastName = Convert.ToString(sValue);
                        break;

                    case "receiver_email":
                        ph.ReceiverEmail = Convert.ToString(sValue);
                        break;

                    case "item_name":
                        ph.ItemName = Convert.ToString(sValue);
                        break;

                    case "mc_currency":
                        ph.Currency = Convert.ToString(sValue);
                        break;

                    case "txn_id":
                        ph.TransactionId = Convert.ToString(sValue);
                        break;

                    case "custom":
                        ph.Custom = Convert.ToString(sValue);
                        break;

                    case "subscr_id":
                        ph.SubscriberId = Convert.ToString(sValue);
                        break;
                }
            }

            return ph;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
示例#14
0
        public ActionResult Success()
        {
            string authToken, txToken, query;
            string strResponse;

            if (Request.HttpMethod != "POST")
            {
                authToken = WebConfigurationManager.AppSettings["PDTToken"];

                // read in txn token from querystring
                txToken = Request.QueryString.Get("tx");

                query = string.Format("cmd=_notify-synch&tx={0}&at={1}", txToken, authToken);

                // crate the request back
                string url = WebConfigurationManager.AppSettings["PayPalSubmitUrl"];

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

                // Set values for the request back
                req.Method        = "POST";
                req.ContentType   = "application/x-www-form-urlencoded";
                req.ContentLength = query.Length;

                // Write the request back IPN strings
                StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                stOut.Write(query);
                stOut.Close();

                // Do the request to PayPal and get the response
                StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
                strResponse = stIn.ReadToEnd();
                stIn.Close();

                // If response was SUCCESS, parse response string and output details
                if (strResponse.StartsWith("SUCCESS"))
                {
                    PDTHolder pdt       = PDTHolder.Parse(strResponse);
                    int       pTicketId = int.Parse(pdt.Custom);
//                    ViewBag.Text = string.Format("Thank you {0} {1} [{2}] for your payment of {3} {4}!",
//                        pdt.PayerFirstName, pdt.PayerLastName, pdt.PayerEmail, pdt.GrossTotal, pdt.Custom);

                    Ticket ticket = this.unitOfWork.TicketRepository.Get(t => t.TicketId == pTicketId).FirstOrDefault();

                    Ticket oldTicket = (Ticket)Session["BuyingTicket"];
                    if (oldTicket != null)
                    {
                        if (oldTicket.EventId != ticket.EventId ||
                            oldTicket.SeriesNumber != ticket.SeriesNumber ||
                            oldTicket.Status != ticket.Status ||
                            oldTicket.Seat != ticket.Seat ||
                            oldTicket.SellPrice != ticket.SellPrice)
                        {
                            return(View("Changed"));
                        }
                    }


                    ViewBag.PayerFirstName = pdt.PayerFirstName;
                    ViewBag.User           = ticket.User.UserName;
                    ViewBag.PayerLastName  = pdt.PayerLastName;
                    ViewBag.OrderId        = pdt.TransactionId;
                    ViewBag.Name           = ticket.Event.EventName;
                    ViewBag.Price          = pdt.GrossTotal;
                    ViewBag.Currency       = pdt.Currency;
                    if (ModelState.IsValid)
                    {
                        if (ticket.TranStatus == null)
                        {
                            if (ticket.TranType == (int)Statuses.TranType.InstantPayment)
                            {
                                Ticket checkout = new Ticket()
                                {
                                    TicketId          = ticket.TicketId,
                                    SeriesNumber      = ticket.SeriesNumber,
                                    TranUserId        = ticket.TranUserId,
                                    TranFullName      = ticket.TranFullName,
                                    TranAddress       = ticket.TranAddress,
                                    TranType          = ticket.TranType,
                                    TranStatus        = (int)Statuses.Transaction.Paid,
                                    EventId           = ticket.EventId,
                                    UserId            = ticket.UserId,
                                    SellPrice         = ticket.SellPrice,
                                    ReceiveMoney      = ticket.ReceiveMoney,
                                    ShippingCost      = ticket.ShippingCost,
                                    Seat              = ticket.Seat,
                                    Status            = ticket.Status,
                                    Description       = ticket.Description,
                                    CreatedDate       = ticket.CreatedDate,
                                    TranCreatedDate   = ticket.TranCreatedDate,
                                    TranModifiedDate  = DateTime.Now,
                                    TranDescription   = ticket.TranDescription,
                                    TranPaymentStatus = (int)Statuses.Payment.Transfered
                                };
                                this.unitOfWork.TicketRepository.AddOrUpdate(checkout);
                                this.unitOfWork.Save();
                            }
                            else
                            {
                                Ticket checkout = new Ticket()
                                {
                                    TicketId         = ticket.TicketId,
                                    SeriesNumber     = ticket.SeriesNumber,
                                    TranUserId       = ticket.TranUserId,
                                    TranFullName     = ticket.TranFullName,
                                    TranAddress      = ticket.TranAddress,
                                    TranType         = ticket.TranType,
                                    TranStatus       = (int)Statuses.Transaction.Paid,
                                    EventId          = ticket.EventId,
                                    UserId           = ticket.UserId,
                                    SellPrice        = ticket.SellPrice,
                                    ReceiveMoney     = ticket.ReceiveMoney,
                                    ShippingCost     = ticket.ShippingCost,
                                    Seat             = ticket.Seat,
                                    Status           = ticket.Status,
                                    Description      = ticket.Description,
                                    CreatedDate      = ticket.CreatedDate,
                                    TranCreatedDate  = ticket.TranCreatedDate,
                                    TranModifiedDate = DateTime.Now,
                                    TranDescription  = ticket.TranDescription
                                };
                                this.unitOfWork.TicketRepository.AddOrUpdate(checkout);
                                this.unitOfWork.Save();
                            }
                        }
                        else
                        {
                            return(View("Error"));
                        }
                    }
                }
                else
                {
                    ViewBag.Text = "Cố lỗi xảy ra";
                }
            }

            return(View());
        }
 public ActionResult Success()
 {
     ViewBag.result = PDTHolder.Success(Request.QueryString.Get("tx"));
     return(View("Success"));
 }
示例#16
0
 public ActionResult OrderConfirmation()
 {
     ViewBag.result = PDTHolder.Success(Request.QueryString.Get("tx"));
     return(View("orderConfirmation"));
 }
        public async Task <IActionResult> Success()
        {
            //This action returns the result of the payment.
            //This is when the order will receive it's first update: it's either payed or encountered an error.
            var result = PDTHolder.Success(Request.Query["tx"].ToString());

            //Update the order status and history, update the offeredservice


            //Get previously entered order information
            string form      = HttpContext.Session.GetString("FORM");
            char   separator = ';';

            string[] formVars = form.Split(separator);

            //Send a confirmation email
            await ConstructOrderVerificationMailAsync(formVars);


            string     email             = formVars[4];
            List <int> offeredServiceIds = ParsePursToList();

            foreach (int olsId in offeredServiceIds)
            {
                //Fetch the order id
                int orderId = MollShopContext.FindOrderId(olsId, email);


                //Insert a new order history
                tbl_orderhistory history = new tbl_orderhistory();
                history.fld_ActionDate  = DateTime.Now;
                history.fld_lastAction  = "Paid order";
                history.fld_orderstatus = "Sent";
                history.fld_orderid     = orderId;

                MollShopContext.CreateRow(history, "tbl_orderhistory");

                //Insert a new order status
                tbl_orderstatus orderStatus = new tbl_orderstatus();
                orderStatus.fld_dateOrdered        = DateTime.Now;
                orderStatus.fld_orderid            = orderId;
                orderStatus.fld_targetDeliveryDate = DateTime.Now.AddDays(7);
                orderStatus.fld_DateUpdated        = DateTime.Now;
                MollShopContext.CreateRow(orderStatus);

                //Set the availability of the service to 'N'

                //ElasticSearch
                EsUpdater <OfferedLabourerService> .UpdateField("" + olsId, "fld_stillavailable", 'N');

                //Database
                tbl_offeredservicesdata os = new tbl_offeredservicesdata();
                os.fld_stillavailable = 'N';

                MollShopContext.UpdateRow(os, "fld_OfferedServiceId", olsId);
            }



            return(View("Success"));
        }