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) { } }
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); }
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) { } }
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); }
//--------------------------------------------------------------------------------------------------------- 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(); } }
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(); } }
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); } }
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) { } }
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(); } }