public ActionResult PayUsingWallet()
        {
            RechargeModel model  = (RechargeModel)Session["recharge"];
            EWallet       wallet = null;

            if (Session["user"] != null)
            {
                TB_User user = (TB_User)Session["user"];
                wallet = user.EWallets.FirstOrDefault();
                if (Convert.ToDecimal(model.amount) < wallet.Amount)
                {
                    ServiceReference1.ClientAPIServiceSoapClient s = new ServiceReference1.ClientAPIServiceSoapClient();
                    string         clientId   = ConfigurationManager.AppSettings["ClientId"];
                    string         clientPwd  = ConfigurationManager.AppSettings["ClientPwd"];
                    string         responseid = "";
                    string         status     = "";
                    string         balances   = "";
                    string         number     = Guid.NewGuid().ToString().Substring(0, 6);
                    TB_Transaction tx         = repo.createTransaction(number, model.amount, wallet.UserID ?? 0, Convert.ToInt32(model.ProductId), model.phone);
                    bool           result     = s.RequestInput(clientId, clientPwd, number, model.Operators, Convert.ToDecimal(model.amount), model.phone, ref responseid, ref status, ref balances);
                    tx.Status     = status;
                    tx.ResponseId = responseid;
                    repo.updateTrasnaction(tx);

                    if (status == "SUBMIT_SUCCESS")
                    {
                        TB_Transaction txu = entities.TB_Transaction.Where(x => x.TransactionId == tx.TransactionId).FirstOrDefault();
                        txu.PaymentStatus = "Payment Recieved.";
                        entities.SaveChanges();
                        repo.DeductMoneyFromWallet(((TB_User)Session["user"]).UserId, Convert.ToDecimal(model.amount));
                        TB_Paypal paypal = new TB_Paypal();
                        paypal.Amount        = Convert.ToDecimal(model.amount);
                        paypal.date          = DateTime.Now;
                        paypal.EWalletID     = wallet.EWalletID;
                        paypal.Type          = "Mobile Recharge";
                        paypal.UserID        = user.UserId;
                        paypal.TransactionID = txu.TransactionId;
                        entities.TB_Paypal.Add(paypal);
                        entities.SaveChanges();
                        ViewBag.Message = "Recharge Succesful !";
                    }
                    else
                    {
                        ViewBag.Message     = "Recharge was UnSuccesful !";
                        ViewBag.MessageDesc = "Some issue occured in the backend. We haven't deducted money from your wallet. Please try again later";
                    }
                }
            }

            return(View(model));
        }
Example #2
0
        public ActionResult RedirectFromPaypal(int id)
        {
            TB_Paypal p  = entities.TB_Paypal.Where(x => x.PaypalId == id).FirstOrDefault();
            EWallet   wa = entities.EWallets.Where(x => x.EWalletID == p.EWalletID).FirstOrDefault();

            p.TransactionID = 1;
            wa.Amount       = wa.Amount + p.Amount;
            entities.SaveChanges();

            ViewBag.Message     = "Recharge Succesful !";
            ViewBag.MessageDesc = "";

            return(View());
        }
Example #3
0
        public ActionResult RechargeWallet(FormCollection forms)
        {
            TB_User   user       = (TB_User)Session["user"];
            string    txn        = forms["txn"];
            string    number     = Guid.NewGuid().ToString().Substring(0, 6);
            bool      useSandbox = Convert.ToBoolean(ConfigurationManager.AppSettings["IsSandbox"]);
            TB_Paypal paypal     = new TB_Paypal();

            paypal.Amount    = Convert.ToDecimal(txn);
            paypal.date      = DateTime.Now;
            paypal.EWalletID = user.EWallets.FirstOrDefault().EWalletID;
            paypal.Type      = "Wallet Recharge";
            paypal.UserID    = user.UserId;
            entities.TB_Paypal.Add(paypal);
            entities.SaveChanges();
            var pay = new PayPalModel(useSandbox, paypal.PaypalId, true, Convert.ToInt32(txn));

            pay.item_name = "Wallet Recharge";
            pay.amount    = txn;
            return(View("RechargeStatusSubmit", pay));
        }