예제 #1
0
        public void Pay_Click(int sharjID, int price)
        {
            try
            {
                string url = ConfigurationManager.AppSettings["SafhePardakhtPage"];// Properties.Settings.Default.SafhePardakhtPage;


                string RedirectURL = ConfigurationManager.AppSettings["ReturnAddressOrgan"];// Properties.Settings.Default.ReturnAddress;

                ClEpayOrder cl = new ClEpayOrder();
                cl.SharjID = Convert.ToInt32(sharjID);
                // cl.ResCode = resNum;
                cl.OrderDateStart = DateTime.Now.ToString();
                cl.IP             = CSharp.PublicFunction.GetIPAddress();
                cl.OS             = CSharp.PublicFunction.GetOS();
                cl.Prcie          = Convert.ToInt32(price);
                cl.Browser        = CSharp.PublicFunction.GetBrowser() + " " + CSharp.PublicFunction.GetBrowserVersion();
                int i = EpayOrderClass.insert(cl);
                if (i == 0)
                {
                    TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "خطا در برنامه");
                }
                else
                {
                    Response.Redirect(url + "?ResNum=" + i + "&MID=" +
                                      MerchantId + "&RedirectURL=" + RedirectURL + "&Amount=" + price.ToString().Trim());
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #2
0
        private bool RequestUnpack()
        {
            if (RequestFeildIsEmpty())
            {
                return(false);
            }

            refrenceNumber    = Request.Form["RefNum"].ToString();
            reservationNumber = Request.Form["ResNum"].ToString();
            transactionState  = Request.Form["state"].ToString();



            // message ="شماره رسید دیجیتالی:"+ refrenceNumber +Environment.NewLine + " شماره خرید: " + reservationNumber +Environment.NewLine+ " وضعیت خرید: " + transactionState + " \n";
            ClEpayOrder cl = new ClEpayOrder();

            cl.ResCode     = reservationNumber;
            cl.RefId       = refrenceNumber;
            cl.OrderStatus = transactionState;
            EpayOrderID    = EpayOrderClass.UpdateByRaseCode(cl);

            lblref.Text     = refrenceNumber.ToString();
            lblRacCode.Text = EpayOrderID.ToString();

            // TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.none, message.ToString());
            // txtResult.Text = message.ToString();



            return(true);
        }
예제 #3
0
        protected void Unnamed_ServerClick(object sender, EventArgs e)
        {
            try
            {
                string url         = ConfigurationManager.AppSettings["SafhePardakhtPage"]; // Properties.Settings.Default.SafhePardakhtPage;
                string RedirectURL = ConfigurationManager.AppSettings["ReturnAddress"];     // Properties.Settings.Default.ReturnAddress;

                ClEpayOrder cl = new ClEpayOrder();
                cl.RequestID = Convert.ToInt32(((HtmlAnchor)sender).HRef.ToString());
                int Price = GetPrice(Convert.ToInt32(((HtmlAnchor)sender).HRef.ToString()));
                cl.OrderDateStart = DateTime.Now.ToString();
                cl.IP             = CSharp.PublicFunction.GetIPAddress();
                cl.OS             = CSharp.PublicFunction.GetOS();
                cl.Prcie          = Price;
                cl.Browser        = CSharp.PublicFunction.GetBrowser() + " " + CSharp.PublicFunction.GetBrowserVersion();
                int i = EpayOrderClass.insert(cl);
                if (i == 0)
                {
                    TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "خطا در برنامه");
                }
                else
                {
                    Response.Redirect(url + "?ResNum=" + i + "&MID=" +
                                      MerchantId + "&RedirectURL=" + RedirectURL + "&Amount=" + Price.ToString().Trim());
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #4
0
        public static string RegWSmojaz(int?reqid = 0, double epayid = 0)
        {
            string alert = "";

            ClEpayOrder cl = new ClEpayOrder();

            cl.EpayOrderID = Convert.ToInt32(epayid);
            DataSet ds      = EpayOrderClass.GetList(cl);
            string  groupid = ds.Tables[0].Rows[0]["GroupID"].ToString();

            if (groupid != "")
            {
                ClEpayGroup cl2 = new ClEpayGroup();
                cl2.GroupID = Convert.ToInt32(groupid);
                DataSet ds2 = EpayGroupClass.GetList(cl2);
                for (int i = 0; i <= ds2.Tables[0].Rows.Count - 1; i++)
                {
                    alert += RegWSmojazOneReq(Convert.ToInt32(ds2.Tables[0].Rows[i]["ReqID"].ToString()), epayid);
                }
                ds2.Dispose();
            }
            else
            {
                alert = RegWSmojazOneReq(reqid, epayid);
            }

            ds.Dispose();

            return(alert);
        }
예제 #5
0
        //---------------------------------------------------------------------------------------------------------
        public static DataSet GetList(ClEpayOrder c)
        {
            SqlCommand cmd = new SqlCommand("PRC_EpayOrder_GetList", cnn);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("UserIDLog", SqlDbType.NVarChar)).Value = CSharp.PublicFunction.GetUserID();
            cmd.Parameters.Add(new SqlParameter("IpLog", SqlDbType.NVarChar)).Value     = CSharp.PublicFunction.GetIPAddress();
            cmd.Parameters.Add(new SqlParameter("OSLog", SqlDbType.NVarChar)).Value     = CSharp.PublicFunction.GetOS();
            cmd.Parameters.Add(new SqlParameter("OSVerLog", SqlDbType.NVarChar)).Value  = CSharp.PublicFunction.GetBrowser() + CSharp.PublicFunction.GetBrowserVersion();
            cmd.Parameters.Add(new SqlParameter("URLLog", SqlDbType.NVarChar)).Value    = CSharp.PublicFunction.GetURL();


            cmd.Parameters.Add(new SqlParameter("EpayOrderID", SqlDbType.Int)).Value          = Securenamespace.SecureData.CheckSecurity(c.EpayOrderID);
            cmd.Parameters.Add(new SqlParameter("RequestID", SqlDbType.Int)).Value            = Securenamespace.SecureData.CheckSecurity(c.RequestID);
            cmd.Parameters.Add(new SqlParameter("IP", SqlDbType.NVarChar)).Value              = Securenamespace.SecureData.CheckSecurity(c.IP);
            cmd.Parameters.Add(new SqlParameter("OS", SqlDbType.NVarChar)).Value              = Securenamespace.SecureData.CheckSecurity(c.OS);
            cmd.Parameters.Add(new SqlParameter("Browser", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.Browser);
            cmd.Parameters.Add(new SqlParameter("Prcie", SqlDbType.Int)).Value                = Securenamespace.SecureData.CheckSecurity(c.Prcie);
            cmd.Parameters.Add(new SqlParameter("OrderDateStart", SqlDbType.NVarChar)).Value  = Securenamespace.SecureData.CheckSecurity(c.OrderDateStart);
            cmd.Parameters.Add(new SqlParameter("OrderDateEND", SqlDbType.NVarChar)).Value    = Securenamespace.SecureData.CheckSecurity(c.OrderDateEND);
            cmd.Parameters.Add(new SqlParameter("OrderStatus", SqlDbType.NVarChar)).Value     = Securenamespace.SecureData.CheckSecurity(c.OrderStatus);
            cmd.Parameters.Add(new SqlParameter("RefId", SqlDbType.NVarChar)).Value           = Securenamespace.SecureData.CheckSecurity(c.RefId);
            cmd.Parameters.Add(new SqlParameter("ResCode", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.ResCode);
            cmd.Parameters.Add(new SqlParameter("SaleOrderId", SqlDbType.NVarChar)).Value     = Securenamespace.SecureData.CheckSecurity(c.SaleOrderId);
            cmd.Parameters.Add(new SqlParameter("SaleReferenceId", SqlDbType.NVarChar)).Value = Securenamespace.SecureData.CheckSecurity(c.SaleReferenceId);
            cmd.Parameters.Add(new SqlParameter("Comment", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.Comment);


            SqlParameter prmResult = new SqlParameter("Result", SqlDbType.Int);

            prmResult.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(prmResult);
            DataSet        ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            try
            {
                cnn.Open();
                da.Fill(ds);
                return(ds);
            }
            catch (Exception ex)
            {
                return(null);
            }
            finally
            {
                cnn.Close();
            }
        }
예제 #6
0
        public static int insert(ClEpayOrder c)

        {
            SqlCommand cmd = new SqlCommand("PRC_EpayOrder_Insert", cnn);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("UserIDLog", SqlDbType.NVarChar)).Value = CSharp.PublicFunction.GetUserID();
            cmd.Parameters.Add(new SqlParameter("IpLog", SqlDbType.NVarChar)).Value     = CSharp.PublicFunction.GetIPAddress();
            cmd.Parameters.Add(new SqlParameter("OSLog", SqlDbType.NVarChar)).Value     = CSharp.PublicFunction.GetOS();
            cmd.Parameters.Add(new SqlParameter("OSVerLog", SqlDbType.NVarChar)).Value  = CSharp.PublicFunction.GetBrowser() + CSharp.PublicFunction.GetBrowserVersion();
            cmd.Parameters.Add(new SqlParameter("URLLog", SqlDbType.NVarChar)).Value    = CSharp.PublicFunction.GetURL();


            cmd.Parameters.Add(new SqlParameter("RequestID", SqlDbType.Int)).Value            = Securenamespace.SecureData.CheckSecurity(c.RequestID);
            cmd.Parameters.Add(new SqlParameter("IP", SqlDbType.NVarChar)).Value              = Securenamespace.SecureData.CheckSecurity(c.IP);
            cmd.Parameters.Add(new SqlParameter("OS", SqlDbType.NVarChar)).Value              = Securenamespace.SecureData.CheckSecurity(c.OS);
            cmd.Parameters.Add(new SqlParameter("Browser", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.Browser);
            cmd.Parameters.Add(new SqlParameter("Prcie", SqlDbType.Int)).Value                = Securenamespace.SecureData.CheckSecurity(c.Prcie);
            cmd.Parameters.Add(new SqlParameter("OrderDateStart", SqlDbType.NVarChar)).Value  = Securenamespace.SecureData.CheckSecurity(c.OrderDateStart);
            cmd.Parameters.Add(new SqlParameter("OrderDateEND", SqlDbType.NVarChar)).Value    = Securenamespace.SecureData.CheckSecurity(c.OrderDateEND);
            cmd.Parameters.Add(new SqlParameter("OrderStatus", SqlDbType.NVarChar)).Value     = Securenamespace.SecureData.CheckSecurity(c.OrderStatus);
            cmd.Parameters.Add(new SqlParameter("RefId", SqlDbType.NVarChar)).Value           = Securenamespace.SecureData.CheckSecurity(c.RefId);
            cmd.Parameters.Add(new SqlParameter("ResCode", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.ResCode);
            cmd.Parameters.Add(new SqlParameter("SaleOrderId", SqlDbType.NVarChar)).Value     = Securenamespace.SecureData.CheckSecurity(c.SaleOrderId);
            cmd.Parameters.Add(new SqlParameter("SaleReferenceId", SqlDbType.NVarChar)).Value = Securenamespace.SecureData.CheckSecurity(c.SaleReferenceId);
            cmd.Parameters.Add(new SqlParameter("Comment", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.Comment);
            cmd.Parameters.Add(new SqlParameter("SharjID", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.SharjID);
            cmd.Parameters.Add(new SqlParameter("GroupID", SqlDbType.NVarChar)).Value         = Securenamespace.SecureData.CheckSecurity(c.GroupID);


            SqlParameter prmResult = new SqlParameter("Result", SqlDbType.Int);

            prmResult.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(prmResult);
            try
            {
                cnn.Open();
                cmd.ExecuteNonQuery();
                return(Convert.ToInt32(prmResult.Value));
            }
            catch (Exception ex)
            {
                return(0);
            }
            finally
            {
                cnn.Close();
            }
        }
예제 #7
0
        public static int GetReqidFromEpayID(int epayid)
        {
            ClEpayOrder cl = new ClEpayOrder();

            cl.EpayOrderID = epayid;
            DataSet ds = EpayOrderClass.GetList(cl);

            if (ds.Tables[0].Rows.Count > 0)
            {
                DataRow dr = ds.Tables[0].Rows[0];
                return(Convert.ToInt32(dr["RequestID"].ToString()));
            }
            else
            {
                return(0);
            }
        }
예제 #8
0
        protected void BTNpAY_Click(object sender, EventArgs e)
        {
            try
            {
                string url = ConfigurationManager.AppSettings["SafhePardakhtPage"];// Properties.Settings.Default.SafhePardakhtPage;

                string resNum = lblRahgiri.Text + ":" + DateTime.Now.Year.ToString() +
                                DateTime.Now.Month.ToString().PadLeft(2, '0') +
                                DateTime.Now.Day.ToString().PadLeft(2, '0') +
                                DateTime.Now.Hour.ToString().PadLeft(2, '0') +
                                DateTime.Now.Minute.ToString().PadLeft(2, '0') +
                                DateTime.Now.Second.ToString().PadLeft(2, '0');

                string RedirectURL = ConfigurationManager.AppSettings["ReturnAddress"];// Properties.Settings.Default.ReturnAddress;

                ClEpayOrder cl = new ClEpayOrder();
                cl.RequestID = Convert.ToInt32(Session["rid"].ToString());
                //cl.ResCode = resNum;
                cl.OrderDateStart = DateTime.Now.ToString();
                cl.IP             = CSharp.PublicFunction.GetIPAddress();
                cl.OS             = CSharp.PublicFunction.GetOS();
                cl.Prcie          = Convert.ToInt32(lblAmount.Text);
                cl.Browser        = CSharp.PublicFunction.GetBrowser() + " " + CSharp.PublicFunction.GetBrowserVersion();
                int i = EpayOrderClass.insert(cl);
                if (i == 0)
                {
                    TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "خطا در برنامه");
                }
                else
                {
                    Response.Redirect(url + "?ResNum=" + i + "&MID=" +
                                      MerchantId + "&RedirectURL=" + RedirectURL + "&Amount=" + lblAmount.Text.Trim());
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            lblmsg.Text = "";
            try
            {
                if (RequestUnpack())
                {
                    if (transactionState.Equals("OK"))
                    {
                        ///////////////////////////////////////////////////////////////////////////////////
                        //   *** IMPORTANT  ****   ATTENTION
                        // Here you should check refrenceNumber in your DataBase tp prevent double spending
                        ///////////////////////////////////////////////////////////////////////////////////
                        ClEpayOrder cl = new ClEpayOrder();
                        cl.RefId = refrenceNumber;
                        DataSet ds = EpayOrderClass.GetList(cl);
                        if (ds.Tables[0].Rows.Count > 1)
                        {
                            //com.samanepay.acquirer.reverseTransaction1CompletedEventHandler;
                            try { ReverseTransaction(); }
                            catch { }
                            TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "با این کد قبلا خرید شده  است .مبلغ حداکثر تا 48 ساعت دیگر عودت میگردد");
                            return;
                        }
                        ds.Dispose();
                        //////////////////////////////////////////////////////////////////////////////////



                        string RegMojaz = PublicFunction.RegWSmojaz(0, EpayOrderID);
                        if (RegMojaz != "")
                        {
                            TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, RegMojaz + " کاربر گرامی پول پرداختی شما تا چند دقیقه دیگر بازگشت خواهد خورد ");
                            return;
                        }


                        //For Ignore SSL Error
                        ServicePointManager.ServerCertificateValidationCallback =
                            delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); };

                        var srv    = new ServiceReference1.PaymentIFBindingSoapClient();
                        var result = srv.verifyTransaction1(refrenceNumber, MerchantId);
                        ////////////////////////Save Result To DB///////////////////////////
                        ////////////string SQL = "update Tbl_EpayOrder set VerifyResult=" + result.ToString() + " where ResCode=" + reservationNumber.ToString() + " and RefId=" + refrenceNumber.ToString() + "";
                        ////////////SqlCommand cmd = new SqlCommand(SQL,new SqlConnection(CSharp.PublicFunction.cnstr()) );
                        ////////////cmd.CommandType = System.Data.CommandType.Text;
                        ClEpayOrder ClResultVerify = new ClEpayOrder();
                        //ClResultVerify.RefId = refrenceNumber;
                        //ClResultVerify.ResCode = reservationNumber;
                        ClResultVerify.VerifyResult = result.ToString();
                        ClResultVerify.EpayOrderID  = Convert.ToInt32(EpayOrderID);
                        EpayOrderClass.Update(ClResultVerify);
                        /////////////////////////////////////////////////////////////////////
                        if (result > 0)
                        {
                            ClEpayOrder cl2 = new ClEpayOrder();
                            cl2.ResCode = reservationNumber;
                            DataSet ds2 = EpayOrderClass.GetList(cl2);
                            DataRow dr2 = ds2.Tables[0].Rows[0];
                            if (Convert.ToInt32(dr2["Prcie"].ToString()) != result)    //check price
                            {
                                isError = true;
                                try { ReverseTransaction(); }
                                catch { TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "عملیات خرید لغو شد"); }
                                TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, "مبلغ بازگشتی معتبر نیست وعملیات خرید لغو و مبلغ عودت شد");
                            }
                            else
                            {
                                isError    = false;
                                succeedMsg = "بانک صحت رسيد ديجيتالي شما را تصديق نمود. فرايند خريد تکميل گشت";
                                TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.General_Success, succeedMsg);
                                ///Save To DB Transaction Complete
                                ClEpayOrder cll = new ClEpayOrder();
                                cll.EpayOrderID = Convert.ToInt32(EpayOrderID);
                                // cll.ResCode = reservationNumber;
                                cll.Comment = "OKK";
                                EpayOrderClass.Update(cll);
                            }
                        }
                        else
                        {
                            TransactionChecking((int)result);
                        }
                    }
                    else
                    {
                        isError  = true;
                        errorMsg = "متاسفانه بانک خريد شما را تاييد نکرده است";


                        if (transactionState.Equals("Canceled By User") || transactionState.Equals(string.Empty))
                        {
                            // Transaction was canceled by user
                            isError  = true;
                            errorMsg = "تراكنش توسط خريدار كنسل شد";
                        }
                        else if (transactionState.Equals("Invalid Amount"))
                        {
                            isError = true;

                            // Amount of revers teransaction is more than teransaction
                        }
                        else if (transactionState.Equals("Invalid Transaction"))
                        {
                            // Can not find teransaction
                        }
                        else if (transactionState.Equals("Invalid Card Number"))
                        {
                            // Card number is wrong
                        }
                        else if (transactionState.Equals("No Such Issuer"))
                        {
                            // Issuer can not find
                        }
                        else if (transactionState.Equals("Expired Card Pick Up"))
                        {
                            // The card is expired
                        }
                        else if (transactionState.Equals("Allowable PIN Tries Exceeded Pick Up"))
                        {
                            // For third time user enter a wrong PIN so card become invalid
                        }
                        else if (transactionState.Equals("Incorrect PIN"))
                        {
                            // Pin card is wrong
                        }
                        else if (transactionState.Equals("Exceeds Withdrawal Amount Limit"))
                        {
                            // Exceeds withdrawal from amount limit
                        }
                        else if (transactionState.Equals("Transaction Cannot Be Completed"))
                        {
                            // PIN and PAD are currect but Transaction Cannot Be Completed
                        }
                        else if (transactionState.Equals("Response Received Too Late"))
                        {
                            // Timeout occur
                        }
                        else if (transactionState.Equals("Suspected Fraud Pick Up"))
                        {
                            // User did not insert cvv2 & expiredate or they are wrong.
                        }
                        else if (transactionState.Equals("No Sufficient Funds"))
                        {
                            // there are not suficient funds in the account
                        }
                        else if (transactionState.Equals("Issuer Down Slm"))
                        {
                            // The bank server is down
                        }
                        else if (transactionState.Equals("TME Error"))
                        {
                            // unknown error occur
                        }

                        TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, errorMsg);
                    }
                }
            }

            catch (Exception ex)
            {
                string s = "عملیات با خطا مواجه شد" + Environment.NewLine + "کد :" + EpayOrderID.ToString() + " را برای رهگیری خطا یادداشت نمایید ";
                TerraficPlanBLL.Utility.ShowMsg(Page, TerraficPlanBLL.ProPertyData.MsgType.warning, s);
                lblmsg.Text = s + Environment.NewLine + ex.ToString();
            }
        }