Пример #1
0
        public object Pay(PosForm pf, ref string provNumber, ref string provMessage, IHttpContextAccessor accessor = null)
        {
            string expMonth = string.Format("{0:00}", Convert.ToInt32(pf.Month));
            string expYear  = string.Format("{0:00}", Convert.ToInt32(pf.Year.ToString().Substring(2, 2)));

            String        responseStr = "";
            String        format      = "{0}={1}&";
            StringBuilder sb          = new StringBuilder();

            sb.AppendFormat(format, "ShopCode", "2927");
            sb.AppendFormat(format, "PurchAmount", Convert.ToDecimal(pf.Price));
            sb.AppendFormat(format, "Currency", "949");
            string provizyonalOrderId = Guid.NewGuid().ToString();

            sb.AppendFormat(format, "OrderId", provizyonalOrderId);//orderId);

            sb.AppendFormat(format, "InstallmentCount", pf.Installments);
            sb.AppendFormat(format, "txnType", "Auth");
            sb.AppendFormat(format, "orgOrderId", "");
            sb.AppendFormat(format, "UserCode", "sedamakapi"); // api için olanı yazdık
            sb.AppendFormat(format, "UserPass", "tE3mx");
            sb.AppendFormat(format, "SecureType", "NonSecure");
            sb.AppendFormat(format, "Pan", pf.CardNumber.ToString());
            sb.AppendFormat(format, "Expiry", expMonth + expYear);
            sb.AppendFormat(format, "Cvv2", pf.SecureCode.ToString());
            sb.AppendFormat(format, "BonusAmount", 0);
            sb.AppendFormat(format, "CardType", pf.CardNumber.ToString().StartsWith("4") ? 0 : 1);
            sb.AppendFormat(format, "Lang", "TR");
            sb.AppendFormat(format, "MOTO", "1");
            //sb.AppendFormat(format, "Description", "yeni işlem"); //Request.Form["Description"]
            //Eğer 3D doğrulaması yapılmış ise aşağıdaki alanlar da gönderilmelidir*/							/*
            //sb.AppendFormat(format, "PayerAuthenticationCode", Request.Form["PayerAuthenticationCode"]);
            //sb.AppendFormat(format, "Eci", Request.Form["Eci"]);//Visa - 05,06 MasterCard 01,02 olabilir
            //sb.AppendFormat(format, "PayerTxnId", Request.Form["PayerTxnId"]);
            try
            {
                System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("https://spos.denizbank.com/mpi/Default.aspx");

                byte[] parameters = System.Text.Encoding.GetEncoding("ISO-8859-9").GetBytes(sb.ToString());
                request.Method        = "POST";
                request.ContentType   = "application/x-www-form-urlencoded";
                request.ContentLength = parameters.Length;
                System.IO.Stream requeststream = request.GetRequestStream();
                requeststream.Write(parameters, 0, parameters.Length);
                requeststream.Close();
                //Response.Write(sb.ToString());

                System.Net.HttpWebResponse resp           = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader     responsereader = new System.IO.StreamReader(resp.GetResponseStream(), System.Text.Encoding.GetEncoding("ISO-8859-9"));

                responseStr = responsereader.ReadToEnd();
            }
            catch (Exception ex)
            {
                return(ErrorMessage = "ErrorMessage=" + ex.Message);
            }

            return(responseStr);
        }
Пример #2
0
        public SalesLineDetailForm(PosForm form, TrnSalesLine salesLineDetail)
        {
            InitializeComponent();
            posForm   = form;
            salesLine = new TrnSalesLine
            {
                Id                   = salesLineDetail.Id,
                SalesId              = salesLineDetail.SalesId,
                ItemDescription      = salesLineDetail.ItemDescription,
                UnitId               = salesLineDetail.UnitId,
                Price                = salesLineDetail.Price,
                DiscountId           = salesLineDetail.DiscountId,
                DiscountRate         = salesLineDetail.DiscountRate,
                DiscountAmount       = salesLineDetail.DiscountAmount,
                NetPrice             = salesLineDetail.NetPrice,
                Quantity             = salesLineDetail.Quantity,
                Amount               = salesLineDetail.Amount,
                TaxId                = salesLineDetail.TaxId,
                TaxRate              = salesLineDetail.TaxRate,
                TaxAmount            = salesLineDetail.TaxAmount,
                SalesAccountId       = salesLineDetail.SalesAccountId,
                AssetAccountId       = salesLineDetail.AssetAccountId,
                CostAccountId        = salesLineDetail.CostAccountId,
                TaxAccountId         = salesLineDetail.TaxAccountId,
                SalesLineTimeStamp   = salesLineDetail.SalesLineTimeStamp,
                UserId               = salesLineDetail.UserId,
                Preparation          = salesLineDetail.Preparation,
                Price1               = salesLineDetail.Price1,
                Price2               = salesLineDetail.Price2,
                Price2LessTax        = salesLineDetail.Price2LessTax,
                PriceSplitPercentage = salesLineDetail.PriceSplitPercentage
            };

            cboUnit.DataSource    = db.MstUnits;
            cboUnit.ValueMember   = "Id";
            cboUnit.DisplayMember = "Unit";

            cboDiscount.DataSource    = db.MstDiscounts;
            cboDiscount.ValueMember   = "Id";
            cboDiscount.DisplayMember = "Discount";

            cboVat.DataSource    = db.MstTaxes;
            cboVat.ValueMember   = "Id";
            cboVat.DisplayMember = "Tax";

            salesLineId            = salesLine.SalesId;
            txtQuantity.Text       = salesLine.Quantity.ToString("#,##0.00");
            cboUnit.Text           = salesLine.UnitId;
            txtPrice.Text          = salesLine.Price.ToString("#,##0.00");
            cboDiscount.Text       = salesLine.DiscountId;
            txtDiscountRate.Text   = salesLine.DiscountRate.ToString("#,##0.00");
            txtDiscountAmount.Text = salesLine.DiscountAmount.ToString("#,##0.00");
            txtNetPrice.Text       = salesLine.NetPrice.ToString("#,##0.00");
            txtAmount.Text         = salesLine.Amount.ToString("#,##0.00");
            cboVat.Text            = salesLine.TaxId;
            txtVatRate.Text        = salesLine.TaxRate.ToString("#,##0.00");
            txtVatAmount.Text      = salesLine.TaxAmount.ToString("#,##0.00");
        }
Пример #3
0
        // Demo function - full document update
        public async Task <bool> UpdateOrderHistoryDocument(string id, PosForm posForm)
        {
            var item = await GetOrderHistory(id) ?? new OrderHistory();

            item.PosForm   = posForm;
            item.UpdatedOn = DateTime.Now;

            return(await UpdateOrderHistory(id, item));
        }
Пример #4
0
        public void login()
        {
            try
            {
                if (db.DatabaseExists())
                {
                    btnLogin.Enabled  = false;
                    btnCancel.Enabled = false;

                    String username = txtUsername.Text;
                    String password = txtPassword.Text;

                    var user = from d in db.MstUsers where d.UserName.Equals(username) && d.Password.Equals(password) select d;
                    if (user.Any())
                    {
                        currentUserId = user.FirstOrDefault().Id;
                        currentUser   = user.FirstOrDefault().FullName;

                        Hide();

                        PosForm posForm = new PosForm(this);
                        posForm.Show();
                    }
                    else
                    {
                        MessageBox.Show("Incorrect Username or Password", "Login Failed!", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        btnLogin.Enabled  = true;
                        btnCancel.Enabled = true;
                    }
                }
                else
                {
                    MessageBox.Show("Looks like your connection string is invalid. Please update connection string.", "Server Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    btnLogin.Enabled  = true;
                    btnCancel.Enabled = true;

                    Hide();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);

                btnLogin.Enabled  = true;
                btnCancel.Enabled = true;
            }
        }
Пример #5
0
        public SalesLineForm(PosForm form, TrnSales sales)
        {
            InitializeComponent();
            posForm = form;

            currentSales = new TrnSales
            {
                Id          = sales.Id,
                PeriodId    = sales.PeriodId,
                TerminalId  = sales.TerminalId,
                SalesDate   = sales.SalesDate,
                SalesNumber = sales.SalesNumber,
                CustomerId  = sales.CustomerId,
                SalesAgent  = sales.SalesAgent,
                Amount      = sales.Amount,
                AccountId   = sales.AccountId,
                TermId      = sales.TermId
            };
        }
Пример #6
0
        public async Task <bool> UpdateOrderHistory(string id, PosForm posForm)
        {
            var filter = Builders <OrderHistory> .Filter.Eq(s => s.Id, id);

            var update = Builders <OrderHistory> .Update
                         .Set(s => s.PosForm, posForm)
                         .CurrentDate(s => s.UpdatedOn);

            try
            {
                UpdateResult actionResult = await _context.OrderHistorys.UpdateOneAsync(filter, update);

                return(actionResult.IsAcknowledged &&
                       actionResult.ModifiedCount > 0);
            }
            catch (Exception ex)
            {
                // log or manage the exception
                throw ex;
            }
        }
Пример #7
0
        public object Pay(PosForm pf, ref string provNumber, ref string provMessage, IHttpContextAccessor accessor = null)
        {
            var mycc5pay = new ePayment.cc5payment();

            mycc5pay.host = "https://sanalpos.isbank.com.tr/servlet/cc5ApiServer";
            //mycc5pay.host="https://testsanalpos.est.com.tr/servlet/cc5ApiServer";
            mycc5pay.name        = "sanalpos";
            mycc5pay.password    = "******";
            mycc5pay.clientid    = "700659404610";
            mycc5pay.orderresult = 0;

            string provizyonalOrderId = Guid.NewGuid().ToString();

            mycc5pay.oid        = provizyonalOrderId;
            mycc5pay.cardnumber = pf.CardNumber.ToString();
            mycc5pay.expmonth   = pf.Month.ToString();
            mycc5pay.expyear    = pf.Year.ToString();
            mycc5pay.cv2        = String.Format("{0:000}", Convert.ToInt32(pf.SecureCode));
            mycc5pay.subtotal   = Convert.ToDecimal(pf.Price).ToString().Replace(",", ".");
            mycc5pay.currency   = "949";
            mycc5pay.chargetype = "Auth";

            mycc5pay.taksit = pf.Installments.ToString() == "0" ? "1" : pf.Installments.ToString();


            string processResult  = mycc5pay.processorder();
            string Procreturncode = mycc5pay.procreturncode;
            string responseStr    = "";

            responseStr += mycc5pay.errmsg;
            ErrorMessage = mycc5pay.errmsg;
            responseStr += mycc5pay.oid;
            responseStr += mycc5pay.groupid;
            responseStr += mycc5pay.appr;
            responseStr += mycc5pay.refno;
            responseStr += mycc5pay.transid;
            responseStr += mycc5pay.Extra("HOSTMSG");

            return(responseStr + " :: " + ErrorMessage);
        }
Пример #8
0
        public InvoiceChargeForm(PosForm form, TrnSales sales)
        {
            InitializeComponent();

            posForm = form;

            currentSales = new TrnSales
            {
                Id          = sales.Id,
                PeriodId    = sales.PeriodId,
                TerminalId  = sales.TerminalId,
                SalesDate   = sales.SalesDate,
                SalesNumber = sales.SalesNumber,
                CustomerId  = sales.CustomerId,
                SalesAgent  = sales.SalesAgent,
                Amount      = sales.Amount,
                AccountId   = sales.AccountId,
                TermId      = sales.TermId
            };

            setLFFormValues();
            f2LockPOS_OnClick();
        }
Пример #9
0
        private void BtnPuntoDeVenta_MouseClick(object sender, MouseEventArgs e)
        {
            PosForm posForm = new PosForm();

            posForm.Show();
        }
Пример #10
0
        public async Task <ActionResult> Post([FromBody] PosForm postForm)
        {
            //0 unsuccess 1 success
            _provNumber = Helper.RandomNumber();

            object isPaymentSuccess = 0;

            if (postForm.CardType == "Vakıf Bank")
            {
                isPaymentSuccess = Helper.Payer(new VakifPay(), postForm, _provNumber, _provMessage, _accessor);
            }
            else if (postForm.CardType == "Bonus")
            {
                isPaymentSuccess = Helper.Payer(new BonusPay(), postForm, _provNumber, _provMessage, _accessor);

                int errIndex    = isPaymentSuccess.ToString().IndexOf("ErrorMessage=");
                int errEndIndex = isPaymentSuccess.ToString().IndexOf(";", errIndex);
                ErrorMessage = isPaymentSuccess.ToString().Substring(errIndex + 13, errEndIndex - (errIndex + 13));

                if (ErrorMessage.Trim() == "")
                {
                    isPaymentSuccess += "|1";
                }
                else
                {
                    isPaymentSuccess += "|0";
                }
            }
            else if (postForm.CardType == "Maximum")
            {
                isPaymentSuccess = Helper.Payer(new MaximumPay(), postForm, _provNumber, _provMessage, _accessor);
                if (isPaymentSuccess.ToString().Contains("Approv"))
                {
                    isPaymentSuccess += "|1";
                }
                else
                {
                    isPaymentSuccess += "|0";
                }
            }
            else if (postForm.CardType == "Finans")
            {
                isPaymentSuccess = Helper.Payer(new MaximumPay(), postForm, _provNumber, _provMessage, _accessor);

                if (isPaymentSuccess.ToString().Contains("Approv"))
                {
                    isPaymentSuccess += "|1";
                }
                else
                {
                    isPaymentSuccess += "|0";
                }
            }

            var result = await _orderHistoryRepository.AddOrderHistory(new OrderHistory()
            {
                PosForm   = postForm,
                CreatedOn = DateTime.Now,
                UpdatedOn = DateTime.Now
            });

            if (Convert.ToInt32(isPaymentSuccess.ToString().Substring(isPaymentSuccess.ToString().Length - 1, 1)) == 1)
            {
                return(new OkObjectResult("Ödeme başarılı!"));
            }

            return(new ObjectResult(isPaymentSuccess));
        }
Пример #11
0
        public object Pay(PosForm pf, ref string provNumber, ref string provMessage, IHttpContextAccessor accessor = null)
        {
            try
            {
                var b        = new byte[5000];
                var encoding = Encoding.GetEncoding("ISO-8859-9");

                var priceBonvert = pf.Price.ToString("0000000000.00").Replace(",", "");

                var installmentsConvert = pf.Installments == -1 ? "00" : String.Format("{0:00}", pf.Installments);

                var yearConvert = pf.Year.ToString(CultureInfo.InvariantCulture);
                yearConvert = yearConvert.Substring(2, 2);

                var monthConvert = string.Format("{0:00}", pf.Month);

                var khipForIp = Helper.GetIp(accessor);

                provMessage = "kullanici=" + CompanyPosUser + "&sifre=" + CompanyPosPwd + "&islem=PRO&uyeno=" + CompanyMemberNo + "&posno=" + CompanyPosNo + "&kkno=" + pf.CardNumber + "&gectar=" + yearConvert + monthConvert + "&cvc=" + string.Format("{0:000}", pf.SecureCode) + "&tutar=" + priceBonvert + "&provno=000000&taksits=" + installmentsConvert + "&islemyeri=I&uyeref=" + provNumber + "&vbref=6527BB1815F9AB1DE864A488E5198663002D0000&khip=" + khipForIp + "&xcip=" + CompanyXcip;

                b.Initialize();
                b = Encoding.ASCII.GetBytes(provMessage);

                var h1 = WebRequest.Create("https://subesiz.vakifbank.com.tr/vpos724v3/?" + provMessage);
                h1.Method = "GET";

                var wr = h1.GetResponse();
                var s2 = wr.GetResponseStream();

                var buffer = new byte[10000];
                int len = 0, r = 1;
                while (r > 0)
                {
                    Debug.Assert(s2 != null, "s2 != null");
                    r    = s2.Read(buffer, len, 10000 - len);
                    len += r;
                }
                Debug.Assert(s2 != null, "s2 != null");
                s2.Close();
                var result = encoding.GetString(buffer, 0, len).Replace("\r", "").Replace("\n", "");


                var msgTemplate = new XmlDocument();
                msgTemplate.LoadXml(result);
                var node = msgTemplate.SelectSingleNode("//Cevap/Msg/Kod");
                Debug.Assert(node != null, "node != null");
                var incomingMonthCode = node.InnerText;

                if (incomingMonthCode == "00")
                {
                    node = msgTemplate.SelectSingleNode("//Cevap/Msg/ProvNo");
                    Debug.Assert(node != null, "node != null");
                    var incomingRefCode = node.InnerText;
                    Result       = true;
                    RefferenceNo = incomingRefCode;
                }
                else
                {
                    Result       = false;
                    ErrorMessage = "";
                    ErrorCode    = incomingMonthCode;
                    switch (ErrorCode)
                    {
                    case "97":
                        ErrorMessage = "Sunucu ip adresini Bankanızla paylaşınız...";
                        break;

                    case "F2":
                        ErrorMessage = "Sanal POS inaktif durumda...";
                        break;

                    case "G0":
                        ErrorMessage = "Bankanızı Arayınız veya [email protected] adresine hatayı iletiniz..02124736060`I ARAYINIZ..";
                        break;

                    case "G5":
                        ErrorMessage = "Yapılan işlemin Sanal POS ta yetkisi yok....";
                        break;

                    case "78":
                        ErrorMessage = "Ödeme denen kart ile taksitli işlem gerçekleştirilemez....";
                        break;

                    case "81":
                        ErrorMessage = "CVV ya da CAVV bilgisinin gönderilmediği durumda alınır..Eksik güvenlik Bilgisi..";
                        break;

                    case "83":
                        ErrorMessage = "Sistem günsonuna girmeyen işlem iade edilmek isteniyor, işlem iptal edilebilir ya da ancak ertesi gün iade edilebilir....";
                        break;

                    case "01":
                        ErrorMessage = "Eski Kayıt...";
                        break;
                    }
                    return(0);
                }
            }
            catch (Exception)
            {
                Result       = false;
                ErrorMessage = SystemError;
                return(0);
            }

            return(1);
        }
Пример #12
0
        public object Pay(PosForm pf, ref string provNumber, ref string provMessage, IHttpContextAccessor accessor = null)
        {
            var mycc5pay = new ePayment.cc5payment();

            mycc5pay.host        = "https://www.fbwebpos.com/fim/api";
            mycc5pay.name        = "sanalpos";
            mycc5pay.password    = "******";
            mycc5pay.clientid    = "601224596";
            mycc5pay.orderresult = 0;

            string provizyonalOrderId = Guid.NewGuid().ToString();

            mycc5pay.oid        = provizyonalOrderId;
            mycc5pay.cardnumber = pf.CardNumber.ToString();
            mycc5pay.expmonth   = pf.Month.ToString();
            mycc5pay.expyear    = pf.Year.ToString();
            mycc5pay.cv2        = String.Format("{0:000}", Convert.ToInt32(pf.SecureCode));
            mycc5pay.subtotal   = Convert.ToDecimal(pf.Price).ToString().Replace(",", ".");
            mycc5pay.currency   = "949";
            mycc5pay.chargetype = "PreAuth";

            if (pf.Installments.ToString() != "0" || pf.Installments.ToString() != "1")
            {
                mycc5pay.taksit = "";
            }
            else
            {
                mycc5pay.taksit = pf.Installments.ToString();
            }

            //işlem yapılıyor
            string resultprocess = mycc5pay.processorder();
            string Result1       = mycc5pay.procreturncode;
            string ErrMsg        = mycc5pay.errmsg;

            ErrorMessage = mycc5pay.errmsg;
            string Oid1    = mycc5pay.oid;
            string GroupId = mycc5pay.groupid;
            string appr1   = mycc5pay.appr;
            string refno   = mycc5pay.refno;
            string transid = mycc5pay.transid;
            string Extra   = mycc5pay.Extra("HOSTMSG");

            string message = "";

            if (resultprocess == "1" && appr1 == "Approved")
            {
                message  = "Approv";
                message += "ISLEM BASARILI BIR SEKILDE GONDERILDI VE ONAYLANDI !!!";
            }
            else if (resultprocess == "1" && appr1 == "Declined")
            {
                message = "ISLEM BASARILI BIR SEKILDE GONDERILDI FAKAT ONAY ALAMADI !!!";
            }
            else if (resultprocess == "1" && appr1 == "Error")
            {
                message = "ISLEM BASARILI BIR SEKILDE GONDERILDI FAKAT ONAY ALAMADI !!!";
            }
            else if (resultprocess == "1" && Result1 != "00")
            {
                message = "ISLEM BASARILI BIR SEKILDE GONDERILDI FAKAT ONAY ALAMADI !!!";
            }
            else if (resultprocess == "0")
            {
                message = "ISLEM GONDERILEMEDI,BANKAYA BAGLANTI KURULAMADI !!!";
            }

            ErrMsg = message;

            return(message);
        }