コード例 #1
0
        public ActionResult Payment()
        {
            if (User.Identity.IsAuthenticated)
            {
                var userId      = User.Identity.GetUserId();
                var itemsInCart = db.ShoppingCart.Where(s => s.UserId == userId && s.Status == false).ToList();

                // the gateway does not accepts amount less than 1000 Rials
                decimal totalPrice = 1000;
                foreach (var item in itemsInCart)
                {
                    totalPrice += item.Count * item.Price;
                }

                try
                {
                    Payment        ob         = new Payment();
                    string         result     = ob.pay(totalPrice.ToString());
                    JsonParameters parameters = JsonConvert.DeserializeObject <JsonParameters>(result);

                    if (parameters.status == 1)
                    {
                        List <TempSale> LstTempSales = new List <TempSale>();
                        foreach (var x in itemsInCart)
                        {
                            TempSale t = new TempSale()
                            {
                                ShoppingCartId = x.Id,
                                BankGetNo      = parameters.transId,
                                Date           = DateTime.Now,
                                Status         = false,
                                Count          = x.Count,
                                Price          = x.Price,
                                ProductId      = x.ProductId,
                                ProductName    = x.ProductName
                            };
                            LstTempSales.Add(t);
                        }
                        db.TempSale.AddRange(LstTempSales);
                        db.SaveChanges();

                        Response.Redirect("https://pay.ir/payment/test/gateway/" + parameters.transId);
                    }
                    else
                    {
                        //lblresult.text = "کدخطا : " + parmeters.errorcode + "<br />" + "پیغام خطا : " + parmeters.errormessage;
                    }
                }
                catch (Exception e)
                {
                    //lblresult.text = "خطا در اتصال به درگاه پرداخت";
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View());
        }
コード例 #2
0
        public static T Deserialise <T>(string jsonString, bool addAssemblyTypes = false) where T : class
        {
            var jsonParams = new JsonParameters
            {
                UseExtensions = addAssemblyTypes,
            };

            return(Json.ToObject <T>(jsonString, jsonParams));
        }
コード例 #3
0
        public static string Serialise(object obj, bool addAssemblyTypes = false)
        {
            var jsonParams = new JsonParameters
            {
                UseExtensions = addAssemblyTypes,
            };

            return(Json.ToJson(obj, jsonParams));
        }
コード例 #4
0
ファイル: CommBankQuery.cs プロジェクト: cpmcgrath/Bankr
        public HttpContent GetContent()
        {
            var    parameters   = new JsonParameters { Params = Parameters };
            string paramRequest = JsonConvert.SerializeObject(parameters);

            var stringContent = new StringContent(paramRequest);
            stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
            return stringContent;
        }
コード例 #5
0
        public ActionResult VerifyPayment(Models.VerifyResult Vresult)
        {
            try
            {
                if (!string.IsNullOrEmpty(Request.Form["transId"]))
                {
                    Payment        ob        = new Payment();
                    string         result    = ob.verify(Request.Form["transId"].ToString());
                    JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result);
                    string         transId   = Request.Form["transId"].ToString();
                    var            thiscart  = db.tbl_purchasekart.Where(a => a.transId == transId).SingleOrDefault();
                    if (Parmeters.status == 1)
                    {
                        thiscart.ispaid          = true;
                        thiscart.purchasedateend = DateTime.Now;
                        db.SaveChanges();
                        Vresult.success        = true;
                        Vresult.TransActionID += Request.Form["transId"].ToString();
                        Vresult.Amount        += Parmeters.amount.ToString();

                        Vresult.SuccessMessage = "پرداخت با موفقیت انجام شد.";

                        Cls_SMS.ClsSend sms_Single = new Cls_SMS.ClsSend();
                        string[]        ret1       = new string[2];
                        string          smstext    = $"مبلغ {Vresult.Amount} ریال به حساب شما بابت خرید اینترنتی سبد شماره {thiscart.id} توسط کاربر {thiscart.user.username} در تاریخ {shamsi.ToShamsi(DateTime.Now).ToString("yyyy/MM/dd")}به شماره سند :  {Vresult.TransActionID} واریز شد.";
                        ret1 = sms_Single.SendSMS_Single(smstext, "09177017801", "100008001", "koohi8", "87g5820", "http://193.104.22.14:2055/CPSMSService/Access", "KOOHI", false);


                        tbl_transaction t = new tbl_transaction();
                        t.cartid    = thiscart.id;
                        t.amount    = decimal.Parse(Vresult.Amount);
                        t.sharh     = "تسویه حساب کاربری : " + thiscart.user.username;
                        t.transid   = Vresult.TransActionID;
                        t.user_id   = thiscart.user.id;
                        t.varizdate = DateTime.Now;
                        db.tbl_transaction.Add(t);
                        db.SaveChanges();
                    }
                    else
                    {
                        Vresult.error        = true;
                        Vresult.ErrorMessage = "کدخطا : " + Parmeters.errorCode + "<br />" + "پیغام خطا : " + Parmeters.errorMessage;
                    }
                }
            }
            catch (Exception)
            {
                Vresult.error        = true;
                Vresult.ErrorMessage = "متاسفانه پرداخت ناموفق بوده است.";
            }

            return(View(Vresult));
        }
        public ActionResult Payment(int id)
        {
            if (User.Identity.IsAuthenticated)
            {
                var userId      = User.Identity.GetUserId();
                var itemsInCart = db.Sales.Where(s => s.UserId == userId && s.Id == id && s.Payed == false).SingleOrDefault();

                if (itemsInCart == null)
                {
                    return(Content("Could not find the auction."));
                }
                // the gateway does not accepts amount less than 1000 Rials
                decimal totalPrice = 1000 + itemsInCart.Price;

                try
                {
                    MyEShop.Utilities.AuctionPayment.Payment ob = new MyEShop.Utilities.AuctionPayment.Payment();
                    string         result     = ob.pay(totalPrice.ToString());
                    JsonParameters parameters = JsonConvert.DeserializeObject <JsonParameters>(result);

                    if (parameters.status == 1)
                    {
                        itemsInCart.BankNo = parameters.transId;
                        db.SaveChanges();

                        Response.Redirect("https://pay.ir/payment/test/gateway/" + parameters.transId);
                    }
                    else
                    {
                        //lblresult.text = "کدخطا : " + parmeters.errorcode + "<br />" + "پیغام خطا : " + parmeters.errormessage;
                    }
                }
                catch (Exception e)
                {
                    //lblresult.text = "خطا در اتصال به درگاه پرداخت";
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View());
        }
        public ActionResult PaymentComplete(string transId)
        {
            if (User.Identity.IsAuthenticated)
            {
                var userId = User.Identity.GetUserId();

                if (!string.IsNullOrEmpty(transId))
                {
                    Payment        ob        = new Payment();
                    string         result    = ob.verify(transId.ToString());
                    JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result);

                    if (Parmeters.status == 1)
                    {
                        var itemsInCart = db.Sales.Include("Product").Where(s => s.UserId == userId && s.BankNo == transId && s.Payed == false).ToList();

                        foreach (var item in itemsInCart)
                        {
                            item.Payed   = true;
                            item.TransId = Convert.ToInt32(transId);
                        }
                        db.SaveChanges();

                        var lstId = new List <string>();
                        foreach (var item in itemsInCart)
                        {
                            lstId.Add(item.Product.UserId);
                        }


                        var bills      = db.Bills.Where(b => lstId.Contains(b.UserId)).ToList();
                        var userBillId = bills.Select(b => b.UserId).ToList();


                        foreach (var v in itemsInCart)
                        {
                            Message messageToSeller = new Message()
                            {
                                Date      = DateTime.Now,
                                IsRead    = false,
                                Text      = "You sold auction item " + v.Product.Name + " , Price: " + v.Price,
                                Title     = "Auction Sold",
                                UserRecId = v.Product.UserId
                            };

                            db.Messages.Add(messageToSeller);

                            if (userBillId.Contains(v.Product.UserId))
                            {
                                var currentBill = db.Bills.Where(b => b.UserId == v.Product.UserId).SingleOrDefault();
                                currentBill.LastRec       = Convert.ToInt32(v.Count * v.Price);
                                currentBill.TotalRec      = currentBill.TotalRec + Convert.ToInt32(v.Count * v.Price);
                                currentBill.TimeOfLastRec = DateTime.Now;
                                db.SaveChanges();
                            }
                            else
                            {
                                Bill bill = new Bill()
                                {
                                    LastRec       = Convert.ToInt32(v.Count * v.Price),
                                    TotalRec      = Convert.ToInt32(v.Count * v.Price),
                                    TimeOfLastRec = DateTime.Now,
                                    PayMe         = false,
                                    PayMeAmount   = 0,
                                    UserId        = v.Product.UserId,
                                    User          = v.Product.User
                                };

                                db.Bills.Add(bill);
                            }
                        }
                        db.SaveChanges();



                        return(RedirectToAction("GetSalesItemByTrasnId", "ShoppingCarts", new { tId = transId, price = Parmeters.amount.ToString() }));
                    }
                    else
                    {
                        return(Content("error"));
                    }
                }
            }

            return(RedirectToAction("Index", "Manage"));
        }
コード例 #8
0
        public String PaymentAction(int purchasecartid = 0)
        {
            try
            {
                transAction Model = new transAction();
                Model.factorNumber = purchasecartid.ToString();
                // تعیین مقدار قابل پرداخت

                var     cartlist = db.tbl_purchasekartitemlist.Where(a => a.perchasekart_id == purchasecartid);
                decimal totalprice = 0, totalweight = 0, totalcosttransportation = 0, discount = 0;
                string  totalpricestr, totalweightstr, totalcosttransportationstr, discountstr;
                foreach (var item in cartlist)
                {
                    totalprice  = totalprice + (decimal)(item.number * (item.product_.lastcellcost.HasValue == true ? item.product_.lastcellcost.Value : 0));
                    totalweight = totalweight + (decimal)(item.number * (item.product_.weight.HasValue == true ? item.product_.weight.Value : 0));
                }



                totalpricestr = string.Format("{0:#,##0.##}", totalprice) + " ریال";
                if (cartlist.FirstOrDefault().perchasekart_.discount_id != null)
                {
                    discount    = Math.Floor(cartlist.FirstOrDefault().perchasekart_.discount_.percentage.Value *totalprice / 100);
                    discountstr = string.Format("{0:#,##0.##}", discount) + " ریال";
                }
                else
                {
                    discount    = 0;
                    discountstr = string.Format("{0:#,##0.##}", discount) + " ریال";
                }
                if (db.tbl_transportationcost.Where(a => a.cart_id == purchasecartid).Count() > 0)
                {
                    totalcosttransportation    = db.tbl_transportationcost.Where(a => a.cart_id == purchasecartid).Sum(a => a.totaltcost.Value);
                    totalcosttransportationstr = string.Format("{0:#,##0.##}", totalcosttransportation) + " ریال";
                }
                else
                {
                    totalcosttransportation    = 0;
                    totalcosttransportationstr = string.Format("{0:#,##0.##}", totalcosttransportation) + " ریال";
                }
                decimal payableprice    = 0;
                string  payablepricestr = "";

                payableprice    = totalprice + totalcosttransportation - discount;
                payablepricestr = string.Format("{0:#,##0.##}", payableprice) + " ریال";



                //


                Model.amount       = payableprice.ToString();
                Model.factorNumber = cartlist.FirstOrDefault().perchasekart_.id.ToString();



                //

                Payment        ob        = new Payment();
                string         result    = ob.pay(Model.amount);
                JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result);

                if (Parmeters.status == 1)
                {
                    var thiscart = db.tbl_purchasekart.Where(a => a.id == purchasecartid).SingleOrDefault();
                    thiscart.transId = Parmeters.transId;
                    db.SaveChanges();
                    Response.Redirect("https://pay.ir/payment/gateway/" + Parmeters.transId);
                }
                else
                {
                    return("کدخطا : " + Parmeters.errorCode + "<br />" + "پیغام خطا : " + Parmeters.errorMessage);
                }
                return("");
            }
            catch (Exception exp)
            {
                return("خطا در اتصال به درگاه پرداخت" + exp.Message);
            }
        }
コード例 #9
0
 public JsonSerializer(JsonParameters param)
 {
     jsonParameters = param;
 }
コード例 #10
0
        public ActionResult PaymentComplete(string transId)
        {
            if (User.Identity.IsAuthenticated)
            {
                var userId = User.Identity.GetUserId();

                if (!string.IsNullOrEmpty(transId))
                {
                    Payment        ob        = new Payment();
                    string         result    = ob.verify(transId.ToString());
                    JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result);

                    if (Parmeters.status == 1)
                    {
                        var tmpSales = db.TempSale.Include("Product").Where(t => t.BankGetNo == transId).ToList();

                        foreach (var i in tmpSales)
                        {
                            i.Status = true;
                            db.TempSale.Attach(i);
                            db.Entry(i).State = EntityState.Modified;
                        }

                        db.SaveChanges();

                        List <Sale> LstSale = new List <Sale>();
                        foreach (var j in tmpSales)
                        {
                            Sale s = new Sale()
                            {
                                TrackingCode = 0,
                                Count        = j.Count,
                                Date         = DateTime.Now,
                                BankNo       = "",
                                Payed        = true,
                                Price        = j.Price,
                                ProductId    = j.ProductId,
                                StatusId     = SalesStatus.OnHold,
                                UserId       = userId,
                                Product      = j.Product,
                                TransId      = Convert.ToInt32(transId)
                            };
                            LstSale.Add(s);
                        }

                        // find Id of sellers
                        var ids = new List <string>();
                        foreach (var o in tmpSales)
                        {
                            ids.Add(o.Product.UserId);
                        }

                        var bills      = db.Bills.Where(b => ids.Contains(b.UserId)).ToList();
                        var userBillId = bills.Select(b => b.UserId).ToList();


                        foreach (var v in LstSale)
                        {
                            Message messageToSeller = new Message()
                            {
                                Date      = DateTime.Now,
                                IsRead    = false,
                                Text      = "You Sold item " + v.Product.Name + " , Price: " + v.Price,
                                Title     = "Item Sold",
                                UserRecId = v.Product.UserId
                            };

                            db.Messages.Add(messageToSeller);

                            if (userBillId.Contains(v.Product.UserId))
                            {
                                var currentBill = db.Bills.Where(b => b.UserId == v.Product.UserId).SingleOrDefault();
                                currentBill.LastRec       = Convert.ToInt32(v.Count * v.Price);
                                currentBill.TotalRec      = currentBill.TotalRec + Convert.ToInt32(v.Count * v.Price);
                                currentBill.TimeOfLastRec = DateTime.Now;
                                db.SaveChanges();
                            }
                            else
                            {
                                Bill bill = new Bill()
                                {
                                    LastRec       = Convert.ToInt32(v.Count * v.Price),
                                    TotalRec      = Convert.ToInt32(v.Count * v.Price),
                                    TimeOfLastRec = DateTime.Now,
                                    PayMe         = false,
                                    PayMeAmount   = 0,
                                    UserId        = v.Product.UserId,
                                    User          = v.Product.User
                                };

                                db.Bills.Add(bill);
                            }
                        }
                        db.Sales.AddRange(LstSale);
                        db.SaveChanges();

                        List <ShoppingCart> tmpShop = new List <ShoppingCart>();
                        foreach (var n in tmpSales)
                        {
                            db.ShoppingCart.RemoveRange(db.ShoppingCart.Where(sh => sh.Id == n.ShoppingCartId));
                            db.TempSale.Remove(n);
                        }

                        db.SaveChanges();

                        return(RedirectToAction("GetSalesItemByTrasnId", new { tId = transId, price = Parmeters.amount.ToString() }));
                    }
                    else
                    {
                        return(Content("error"));
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }