Example #1
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            string result;

            long orderid;//= new bmp_PaymentBusiness().GenerateOrderId();


            SetDefaultDateTime();
            bmp_PaymentBusiness bmp = new bmp_PaymentBusiness();

            PaymentGatewayImplService bpService = new PaymentGatewayImplService();

            result = bmp.pay(1000, "99900999", out orderid, 0, 0);

            String[] resultArray = result.Split(',');


            string[] ReqIdArray = Session["ReqID"].ToString().Split(new char[] { ',' });
            string[] PayID      = Session["PayID"].ToString().Split(new char[] { ',' });


            Session["ReqID"] = null;
            Session["PayID"] = null;

            if (resultArray[0] == "0")
            {
                ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + resultArray[1] + "');</script> ", false);
            }
        }
Example #2
0
        public KeyValuePair <string, string> bpVerifyRequest(long saleOrderId, long saleReferenceId, string refId, long userId)
        {
            userId = 0;//این باید طبق قوانین به پرداخت صفر باشد!
            long   payId     = 0;
            string response1 = "";
            string response2 = "";

            try
            {
                PaymentGatewayImplService bpService = new PaymentGatewayImplService();

                response1 = bpService.bpVerifyRequest(OtherId,
                                                      behpardakht_username,
                                                      behpardakht_password,
                                                      payId,
                                                      saleOrderId,
                                                      saleReferenceId);


                if (response1 == "0" || response1 == "43")
                {
                    try
                    {
                        response2 = bpSettleRequest(saleOrderId, saleReferenceId, refId, userId);
                        return(new KeyValuePair <string, string>(response2, ResCodeFarsi(response2)));
                    }
                    catch
                    {
                        return(errorCode4);//خطای سیستمی
                    }
                }
                else if (string.IsNullOrEmpty(response1))
                {
                    try
                    {
                        response2 = bpInqiryRequest(saleOrderId, saleReferenceId, refId, userId);
                        return(new KeyValuePair <string, string>(response2, ResCodeFarsi(response2)));
                    }
                    catch
                    {
                        return(errorCode4);//خطای سیستمی
                    }
                }
                else
                {
                    return(new KeyValuePair <string, string>(response1, ResCodeFarsi(response1)));
                }
            }
            catch
            {
                return(errorCode4);//خطای سیستمی
            }
        }
Example #3
0
        public string VerifyPayment(PaymentDTO pay)
        {
            string result;

            bmp.BypassCertificateError();
            PaymentGatewayImplService bpService = new PaymentGatewayImplService();

            result = bpService.bpVerifyRequest(Int64.Parse(ConfigurationManager.AppSettings["Mellat_TerminalId"]),
                                               ConfigurationManager.AppSettings["UserName"],
                                               ConfigurationManager.AppSettings["UserPassword"],
                                               pay.OrderId,
                                               pay.OrderId,
                                               pay.TraceNumber);
            return(result);
        }
Example #4
0
        private bool InquiryTransaction(string reference_number, string res_num)
        {
            ir.shaparak.bpm.PaymentGatewayImplService bmService = new PaymentGatewayImplService();
            string strStatCode = bmService.bpInquiryRequest(_mellatBankPaymentSettings.TerminalId, _mellatBankPaymentSettings.Username, _mellatBankPaymentSettings.Password, Convert.ToInt64(res_num), Convert.ToInt64(res_num), Convert.ToInt64(reference_number));

            if (strStatCode.Trim() == "0")
            {
                // transaction verified
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #5
0
        /// <summary>
        /// استارت ارتباط با یانک
        /// </summary>
        /// <param name="amount"></param>
        /// <param name="payDate"></param>
        /// <param name="time"></param>
        /// <param name="additionalInfo"></param>
        /// <param name="payerId"></param>
        /// <returns>اگر اکی باشد، خروجی RefCode خواهد بود
        /// وگرنه خروجی Null خواهد بود که نشان دهنده رخ دادن خطا است</returns>
        public KeyValuePair <string, string> bpPayRequest(long amount, DateTime payDate, TimeSpan time, string additionalInfo, long payId, string userIP, int?payType)
        {
            long payerId = 0;//این باید طبق قوانین به پرداخت صفر باشد!

            payId = 0;
            KeyValuePair <string, string> result;

            try
            {
                //گرفتن رکورد پرداخت قبل از تایید پرداخت
                //PaysClass payClass = new PaysClass();
                // payId = payClass.Add(amount, payerId, DateTime.Now, additionalInfo, behpardakhtSystem.SystemId, userIP,payType:payType);

                PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                //ارسال درخواست اتصال به بانک
                var response = bpService.bpPayRequest(OtherId,
                                                      behpardakht_username,
                                                      behpardakht_password,
                                                      payId,
                                                      amount,
                                                      payDate.Year.ToString() + payDate.Month.ToString().PadLeft(2, '0') + payDate.Day.ToString().PadLeft(2, '0'),
                                                      payDate.Hour.ToString().PadLeft(2, '0') + payDate.Minute.ToString().PadLeft(2, '0') + payDate.Second.ToString().PadLeft(2, '0'),
                                                      additionalInfo,
                                                      callbackurl,
                                                      payerId);

                String[] resultArray = response.Split(',');
                if (resultArray[0] == "0")
                {
                    result = new KeyValuePair <string, string>(resultArray[0], resultArray[1]);
                    RunPostScript(resultArray[1]);
                    return(result);
                }
                else if (string.IsNullOrEmpty(response))
                {
                    return(errorCode3);
                }
                else
                {
                    result = new KeyValuePair <string, string>(resultArray[0], ResCodeFarsi(resultArray[0]));
                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #6
0
        private string bpInqiryRequest(long saleOrderId, long saleReferenceId, string refId, long userId)
        {
            userId = 0;//این باید طبق قوانین به پرداخت صفر باشد!

            string response1 = "", response2 = "";
            long   payId = 0;


            PaymentGatewayImplService bpService = new PaymentGatewayImplService();

            try
            {
                //برداشت وجه از حساب
                response1 = bpService.bpInquiryRequest(OtherId,
                                                       behpardakht_username,
                                                       behpardakht_password,
                                                       payId,
                                                       saleOrderId,
                                                       saleReferenceId);
            }
            catch
            {
                return("-999");//خطای سیستمی
            }

            if (response1 == "0" || response1 == "43")
            {
                response2 = bpSettleRequest(saleOrderId, saleReferenceId, refId, userId);
                return(response2);
            }
            else if (string.IsNullOrEmpty(response1))
            {
                return("-901");//وصضعیت نامشخص
            }
            else
            {
                return(response1);
            }
        }
Example #7
0
        private string bpSettleRequest(long saleOrderId, long saleReferenceId, string refId, long userId)
        {
            userId = 0;//این باید طبق قوانین به پرداخت صفر باشد!

            string response = "";
            long   payId    = 0;



            PaymentGatewayImplService bpService = new PaymentGatewayImplService();

            try
            {
                //درخواست واریز وجه
                response = bpService.bpSettleRequest(OtherId,
                                                     behpardakht_username,
                                                     behpardakht_password,
                                                     payId,
                                                     saleOrderId,
                                                     saleReferenceId);
            }
            catch
            {
                return("-999");//خطای سیستمی
            }

            if (response == "0" || response == "45")
            {
                return(response);
            }
            else if (string.IsNullOrEmpty(response))
            {
                return("-901");//وضعیت نامشخص
            }
            else
            {
                return(response);
            }
        }
Example #8
0
        protected void btnPay_Click(object sender, EventArgs e)
        {
            try
            {
                string result;

                long orderid;// = new bmp_PaymentBusiness().GenerateOrderId();



                PaymentDTO          pay = new PaymentDTO();
                bmp_PaymentBusiness bmp = new bmp_PaymentBusiness();
                pay.Amount = Convert.ToInt64(Session["fee"].ToString());
                //pay.PayDate = PayDate + "_" + PayTime;
                pay.stcode = Session[sessionNames.userID_StudentOstad].ToString();
                pay.bankId = 2;
                pay.tterm  = ConfigurationManager.AppSettings["Term"];

                string additionalInfo = pay.stcode;

                PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                result      = bmp.pay(pay.Amount, pay.stcode, out orderid, Convert.ToInt32(Session[sessionNames.appID_StudentOstad]), 0);
                pay.OrderId = orderid;

                Response.Write(result);
                String[] resultArray = result.Split(',');

                pay.ReqKey      = resultArray[1];
                pay.AppStatus   = "none";
                pay.TraceNumber = 0;
                pay.Result      = -1;
            }
            catch (Exception)
            {
                // PayOutputLabel.Text = "Error: " + exp.Message;
            }
        }
Example #9
0
        public string PaymentStatusInquery(Int64 orderID, out int result)
        {
            result = -1;
            var pay = GetPaymentInfoByOrderID(orderID);
            PaymentGatewayImplService bpService = new PaymentGatewayImplService();
            string resultInquery = "";


            resultInquery = bpService.bpInquiryRequest(Int64.Parse(System.Configuration.ConfigurationManager.AppSettings["Mellat_TerminalId"]),
                                                       System.Configuration.ConfigurationManager.AppSettings["UserName"],
                                                       System.Configuration.ConfigurationManager.AppSettings["UserPassword"],
                                                       pay.OrderId,
                                                       pay.OrderId,
                                                       pay.TraceNumber);

            string resultText = "";

            if (Business.Common.CommonBusiness.IsNumeric(resultInquery))
            {
                result = Convert.ToInt32(resultInquery);
                switch (result)
                {
                case 0:
                    resultText = "تراكنش با موفقيت انجام شد";
                    break;

                case 11:
                    resultText = "ﺷﻤﺎﺭﻩ ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ ";
                    break;

                case 12:
                    resultText = "ﻣﻮﺟﻮﺩﻱ ﻛﺎﻓﻲ ﻧﻴﺴﺖ ";
                    break;

                case 13:
                    resultText = "ﺭﻣﺰ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ ";
                    break;

                case 14:
                    resultText = "ﺗﻌﺪﺍﺩ ﺩﻓﻌﺎﺕ ﻭﺍﺭﺩ ﻛﺮﺩﻥ ﺭﻣﺰ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ ";
                    break;

                case 15:
                    resultText = "ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 16:
                    resultText = "ﺩﻓﻌﺎﺕ ﺑﺮﺩﺍﺷﺖ ﻭﺟﻪ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ";
                    break;

                case 17:
                    resultText = "ﻛﺎﺭﺑﺮ ﺍﺯ ﺍﻧﺠﺎﻡ ﺗﺮﺍﻛﻨﺶ ﻣﻨﺼﺮﻑ ﺷﺪﻩ ﺍﺳﺖ ";
                    break;

                case 18:
                    resultText = "ﺗﺎﺭﻳﺦ ﺍﻧﻘﻀﺎﻱ ﻛﺎﺭﺕ ﮔﺬﺷﺘﻪ ﺍﺳﺖ";
                    break;

                case 19:
                    resultText = "ﻣﺒﻠﻎ ﺑﺮﺩﺍﺷﺖ ﻭﺟﻪ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ";
                    break;

                case 111:
                    resultText = "ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 112:
                    resultText = "ﺧﻄﺎﻱ ﺳﻮﻳﻴﭻ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ";
                    break;

                case 113:
                    resultText = "ﭘﺎﺳﺨﻲ ﺍﺯ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ﺩﺭﻳﺎﻓﺖ ﻧﺸﺪ";
                    break;

                case 114:
                    resultText = "ﺩﺍﺭﻧﺪﻩ ﻛﺎﺭﺕ ﻣﺠﺎﺯ ﺑﻪ ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﺗﺮﺍﻛﻨﺶ ﻧﻴﺴﺖ";
                    break;

                case 21:
                    resultText = "ﭘﺬﻳﺮﻧﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 23:
                    resultText = "ﺧﻄﺎﻱ ﺍﻣﻨﻴﺘﻲ ﺭﺥ ﺩﺍﺩﻩ ﺍﺳﺖ";
                    break;

                case 24:
                    resultText = "ﺍﻃﻼﻋﺎﺕ ﻛﺎﺭﺑﺮﻱ ﭘﺬﻳﺮﻧﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 25:
                    resultText = "ﻣﺒﻠﻎ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 31:
                    resultText = "ﭘﺎﺳﺦ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ ";
                    break;

                case 32:
                    resultText = "ﻓﺮﻣﺖ ﺍﻃﻼﻋﺎﺕ ﻭﺍﺭﺩ ﺷﺪﻩ ﺻﺤﻴﺢ ﻧﻤﻲ ﺑﺎﺷﺪ";
                    break;

                case 33:
                    resultText = "ﺣﺴﺎﺏ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 34:
                    resultText = "ﺧﻄﺎﻱ ﺳﻴﺴﺘﻤﻲ";
                    break;

                case 35:
                    resultText = "ﺗﺎﺭﻳﺦ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 36:
                    resultText = "ﺷﻤﺎﺭﻩ ﺩﺭﺧﻮﺍﺳﺖ ﺗﻜﺮﺍﺭﻱ ﺍﺳﺖ ";
                    break;

                case 42:
                    resultText = "ﻳﺎﻓﺖ ﻧﺸﺪ Sale ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 43:
                    resultText = " ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ Verify ﻗﺒﻼ ﺩﺭﺧﻮﺍﺳﺖ ";
                    break;

                case 44:
                    resultText = " ﻳﺎﻓﺖ ﻧﺸﺪ Verfiy ﺩﺭﺧﻮﺍﺳﺖ ";
                    break;

                case 45:
                    resultText = "  ﺷﺪﻩ ﺍﺳﺖ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 46:
                    resultText = "  ﻧﺸﺪﻩ ﺍﺳﺖ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 47:
                    resultText = "ﻳﺎﻓﺖ ﻧﺸﺪ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 48:
                    resultText = "  ﺷﺪﻩ ﺍﺳﺖ Reverse ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 49:
                    resultText = "ﻳﺎﻓﺖ ﻧﺸﺪ Refund ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case 412:
                    resultText = "ﺷﻨﺎﺳﻪ ﻗﺒﺾ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ";
                    break;

                case 413:
                    resultText = "ﺷﻨﺎﺳﻪ ﭘﺮﺩﺍﺧﺖ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ";
                    break;

                case 414:
                    resultText = "ﺳﺎﺯﻣﺎﻥ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻗﺒﺾ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 415:
                    resultText = "ﺯﻣﺎﻥ ﺟﻠﺴﻪ ﻛﺎﺭﻱ ﺑﻪ ﭘﺎﻳﺎﻥ ﺭﺳﻴﺪﻩ ﺍﺳﺖ";
                    break;

                case 416:
                    resultText = " ﺧﻄﺎ ﺩﺭ ﺛﺒﺖ ﺍﻃﻼﻋﺎﺕ";
                    break;

                case 417:
                    resultText = "ﺷﻨﺎﺳﻪ ﭘﺮﺩﺍﺧﺖ ﻛﻨﻨﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 418:
                    resultText = "ﺍﺷﻜﺎﻝ ﺩﺭ ﺗﻌﺮﻳﻒ ﺍﻃﻼﻋﺎﺕ ﻣﺸﺘﺮﻱ";
                    break;

                case 419:
                    resultText = "ﺗﻌﺪﺍﺩ ﺩﻓﻌﺎﺕ ﻭﺭﻭﺩ ﺍﻃﻼﻋﺎﺕ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﮔﺬﺷﺘﻪ ﺍﺳﺖ";
                    break;

                case 421:
                    resultText = "ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ IP";
                    break;

                case 51:
                    resultText = "ﺗﺮﺍﻛﻨﺶ ﺗﻜﺮﺍﺭﻱ ﺍﺳﺖ ";
                    break;

                case 54:
                    resultText = "ﺗﺮﺍﻛﻨﺶ ﻣﺮﺟﻊ ﻣﻮﺟﻮﺩ ﻧﻴﺴﺖ";
                    break;

                case 55:
                    resultText = "ﺗﺮﺍﻛﻨﺶ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case 61:
                    resultText = "ﺧﻄﺎ ﺩﺭ ﻭﺍﺭﻳﺰ";
                    break;
                }
            }
            return(resultText);
        }
Example #10
0
        protected void grd_Payment_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
        {
            if (e.CommandName == "estelam")
            {
                DataTable  dt  = new DataTable();
                PaymentDTO pay = new PaymentDTO();
                pay = Pb.GetPaymentInfoByOrderID(long.Parse(e.CommandArgument.ToString()));
                PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                string result = bpService.bpInquiryRequest(Int64.Parse(Mellat_TerminalId), Mellat_UserName, Mellat_UserPassword, pay.OrderId, pay.OrderId, pay.TraceNumber);
                switch (result)
                {
                case "0":
                    lbl_Estelam.Text = "تراكنش با موفقيت انجام شد";
                    break;

                case "11":
                    lbl_Estelam.Text = "ﺷﻤﺎﺭﻩ ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ ";
                    break;

                case "12":
                    lbl_Estelam.Text = "ﻣﻮﺟﻮﺩﻱ ﻛﺎﻓﻲ ﻧﻴﺴﺖ ";
                    break;

                case "13":
                    lbl_Estelam.Text = "ﺭﻣﺰ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ ";
                    break;

                case "14":
                    lbl_Estelam.Text = "ﺗﻌﺪﺍﺩ ﺩﻓﻌﺎﺕ ﻭﺍﺭﺩ ﻛﺮﺩﻥ ﺭﻣﺰ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ ";
                    break;

                case "15":
                    lbl_Estelam.Text = "ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "16":
                    lbl_Estelam.Text = "ﺩﻓﻌﺎﺕ ﺑﺮﺩﺍﺷﺖ ﻭﺟﻪ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ";
                    break;

                case "17":
                    lbl_Estelam.Text = "ﻛﺎﺭﺑﺮ ﺍﺯ ﺍﻧﺠﺎﻡ ﺗﺮﺍﻛﻨﺶ ﻣﻨﺼﺮﻑ ﺷﺪﻩ ﺍﺳﺖ ";
                    break;

                case "18":
                    lbl_Estelam.Text = "ﺗﺎﺭﻳﺦ ﺍﻧﻘﻀﺎﻱ ﻛﺎﺭﺕ ﮔﺬﺷﺘﻪ ﺍﺳﺖ";
                    break;

                case "19":
                    lbl_Estelam.Text = "ﻣﺒﻠﻎ ﺑﺮﺩﺍﺷﺖ ﻭﺟﻪ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﺍﺳﺖ";
                    break;

                case "111":
                    lbl_Estelam.Text = "ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "112":
                    lbl_Estelam.Text = "ﺧﻄﺎﻱ ﺳﻮﻳﻴﭻ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ";
                    break;

                case "113":
                    lbl_Estelam.Text = "ﭘﺎﺳﺨﻲ ﺍﺯ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻛﺎﺭﺕ ﺩﺭﻳﺎﻓﺖ ﻧﺸﺪ";
                    break;

                case "114":
                    lbl_Estelam.Text = "ﺩﺍﺭﻧﺪﻩ ﻛﺎﺭﺕ ﻣﺠﺎﺯ ﺑﻪ ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﺗﺮﺍﻛﻨﺶ ﻧﻴﺴﺖ";
                    break;

                case "21":
                    lbl_Estelam.Text = "ﭘﺬﻳﺮﻧﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "23":
                    lbl_Estelam.Text = "ﺧﻄﺎﻱ ﺍﻣﻨﻴﺘﻲ ﺭﺥ ﺩﺍﺩﻩ ﺍﺳﺖ";
                    break;

                case "24":
                    lbl_Estelam.Text = "ﺍﻃﻼﻋﺎﺕ ﻛﺎﺭﺑﺮﻱ ﭘﺬﻳﺮﻧﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "25":
                    lbl_Estelam.Text = "ﻣﺒﻠﻎ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "31":
                    lbl_Estelam.Text = "ﭘﺎﺳﺦ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ ";
                    break;

                case "32":
                    lbl_Estelam.Text = "ﻓﺮﻣﺖ ﺍﻃﻼﻋﺎﺕ ﻭﺍﺭﺩ ﺷﺪﻩ ﺻﺤﻴﺢ ﻧﻤﻲ ﺑﺎﺷﺪ";
                    break;

                case "33":
                    lbl_Estelam.Text = "ﺣﺴﺎﺏ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "34":
                    lbl_Estelam.Text = "ﺧﻄﺎﻱ ﺳﻴﺴﺘﻤﻲ";
                    break;

                case "35":
                    lbl_Estelam.Text = "ﺗﺎﺭﻳﺦ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "41":
                    lbl_Estelam.Text = "ﺷﻤﺎﺭﻩ ﺩﺭﺧﻮﺍﺳﺖ ﺗﻜﺮﺍﺭﻱ ﺍﺳﺖ ";
                    break;

                case "42":
                    lbl_Estelam.Text = "ﻳﺎﻓﺖ ﻧﺸﺪ Sale ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "43":
                    lbl_Estelam.Text = " ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ Verify ﻗﺒﻼ ﺩﺭﺧﻮﺍﺳﺖ ";
                    break;

                case "44":
                    lbl_Estelam.Text = " ﻳﺎﻓﺖ ﻧﺸﺪ Verfiy ﺩﺭﺧﻮﺍﺳﺖ ";
                    break;

                case "45":
                    lbl_Estelam.Text = "  ﺷﺪﻩ ﺍﺳﺖ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "46":
                    lbl_Estelam.Text = "  ﻧﺸﺪﻩ ﺍﺳﺖ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "47":
                    lbl_Estelam.Text = "ﻳﺎﻓﺖ ﻧﺸﺪ Settle ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "48":
                    lbl_Estelam.Text = "  ﺷﺪﻩ ﺍﺳﺖ Reverse ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "49":
                    lbl_Estelam.Text = "ﻳﺎﻓﺖ ﻧﺸﺪ Refund ﺗﺮﺍﻛﻨﺶ ";
                    break;

                case "412":
                    lbl_Estelam.Text = "ﺷﻨﺎﺳﻪ ﻗﺒﺾ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ";
                    break;

                case "413":
                    lbl_Estelam.Text = "ﺷﻨﺎﺳﻪ ﭘﺮﺩﺍﺧﺖ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ";
                    break;

                case "414":
                    lbl_Estelam.Text = "ﺳﺎﺯﻣﺎﻥ ﺻﺎﺩﺭ ﻛﻨﻨﺪﻩ ﻗﺒﺾ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "415":
                    lbl_Estelam.Text = "ﺯﻣﺎﻥ ﺟﻠﺴﻪ ﻛﺎﺭﻱ ﺑﻪ ﭘﺎﻳﺎﻥ ﺭﺳﻴﺪﻩ ﺍﺳﺖ";
                    break;

                case "416":
                    lbl_Estelam.Text = " ﺧﻄﺎ ﺩﺭ ﺛﺒﺖ ﺍﻃﻼﻋﺎﺕ";
                    break;

                case "417":
                    lbl_Estelam.Text = "ﺷﻨﺎﺳﻪ ﭘﺮﺩﺍﺧﺖ ﻛﻨﻨﺪﻩ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "418":
                    lbl_Estelam.Text = "ﺍﺷﻜﺎﻝ ﺩﺭ ﺗﻌﺮﻳﻒ ﺍﻃﻼﻋﺎﺕ ﻣﺸﺘﺮﻱ";
                    break;

                case "419":
                    lbl_Estelam.Text = "ﺗﻌﺪﺍﺩ ﺩﻓﻌﺎﺕ ﻭﺭﻭﺩ ﺍﻃﻼﻋﺎﺕ ﺍﺯ ﺣﺪ ﻣﺠﺎﺯ ﮔﺬﺷﺘﻪ ﺍﺳﺖ";
                    break;

                case "421":
                    lbl_Estelam.Text = "ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ IP";
                    break;

                case "51":
                    lbl_Estelam.Text = "ﺗﺮﺍﻛﻨﺶ ﺗﻜﺮﺍﺭﻱ ﺍﺳﺖ ";
                    break;

                case "54":
                    lbl_Estelam.Text = "ﺗﺮﺍﻛﻨﺶ ﻣﺮﺟﻊ ﻣﻮﺟﻮﺩ ﻧﻴﺴﺖ";
                    break;

                case "55":
                    lbl_Estelam.Text = "ﺗﺮﺍﻛﻨﺶ ﻧﺎﻣﻌﺘﺒﺮ ﺍﺳﺖ";
                    break;

                case "61":
                    lbl_Estelam.Text = "ﺧﻄﺎ ﺩﺭ ﻭﺍﺭﻳﺰ";
                    break;

                default:
                    break;
                }
            }
        }
Example #11
0
        /// <summary>
        /// Post process payment (used by payment gateways that require redirecting to a third-party URL)
        /// </summary>
        /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
        public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
        {
            ir.shaparak.bpm.PaymentGatewayImplService bmService = new PaymentGatewayImplService();
            string strPhaseOneResult = "";
            string strRefNum         = "";
            string strStatCode       = "";

            // Get the ref num to get started
            //string strdata = _mellatBankPaymentSettings.TerminalId + "##" + _mellatBankPaymentSettings.Username + "##" + _mellatBankPaymentSettings.Password + "##" + Convert.ToInt64(postProcessPaymentRequest.Order.Id).ToString() + "##" + Convert.ToInt64(postProcessPaymentRequest.Order.OrderTotal).ToString() + "##" + DateTime.Now.ToString("yyyyMMdd") + "##" + DateTime.Now.ToString("HHmmss") + "##" + GetMellatBankCallBackUrl();
            strPhaseOneResult = bmService.bpPayRequest(_mellatBankPaymentSettings.TerminalId, _mellatBankPaymentSettings.Username, _mellatBankPaymentSettings.Password, Convert.ToInt64(postProcessPaymentRequest.Order.Id), Convert.ToInt64(postProcessPaymentRequest.Order.OrderTotal), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), "", GetMellatBankCallBackUrl(), 0);
            //_httpContext.Response.Redirect("http://asjhdgasjhdg.com/" + strPhaseOneResult + "-" + _mellatBankPaymentSettings.TerminalId + "-" + _mellatBankPaymentSettings.Username + "-" + _mellatBankPaymentSettings.Password + "-" + Convert.ToInt64(postProcessPaymentRequest.Order.Id) + "-" + Convert.ToInt64(postProcessPaymentRequest.Order.OrderTotal) + "-" + GetMellatBankCallBackUrl());

            if (strPhaseOneResult.Length > 0 && strPhaseOneResult.IndexOf(',') > 0)
            {
                string[] parts = strPhaseOneResult.Split(',');
                if (parts.Length == 2)
                {
                    if (Convert.ToInt32(parts[0]) == 0)
                    {
                        // its ok
                        strRefNum   = parts[1].ToString();
                        strStatCode = parts[0].ToString();
                    }

                    // after getting the number check for duplicate in db in case of fraud

                    var query = from or in _orderRepository.Table
                                where or.AuthorizationTransactionCode == strRefNum
                                select or;

                    if (query.Count() > 0)
                    {
                        // THIS REFNUM ALREADY EXISTS,   H A L T   O P E R A T I O N
                        postProcessPaymentRequest.Order.PaymentStatus = PaymentStatus.Pending;
                        return;
                    }
                    else
                    {
                        // NO PREVIOUS RECORD OF REFNUM, CLEAR TO PROCEED


                        var remotePostHelper = new RemotePost();
                        remotePostHelper.FormName = "form1";
                        remotePostHelper.Url      = GetMellatBankUrl();
                        remotePostHelper.Add("RefId", strRefNum);
                        remotePostHelper.Post();
                    }
                }
                else
                {
                    postProcessPaymentRequest.Order.PaymentStatus = PaymentStatus.Pending;
                    return;
                }
            }
            else
            {
                // no usable response from server
                postProcessPaymentRequest.Order.PaymentStatus = PaymentStatus.Pending;

                _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, GetErrorDescription(Convert.ToInt32(strPhaseOneResult)), strPhaseOneResult);
                return;
            }
        }
 public BehPardakhtMellat()
 {
     behPardakhtWebService = new PaymentGatewayImplService();
     OrderID = GenerateRandomOrderID();
 }
Example #13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        SetDefaultDateTime();
        BypassCertificateError();

        try
        {
            if (RequestUnpack())
            {
                if (transactionState.Equals("OK"))
                {
                    ///For Ignore SSL Error
                    ServicePointManager.ServerCertificateValidationCallback =
                        delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); };
                    Response.Write("OK");

                    ///WebService Instance
                    var srv = new PaymentGatewayImplService();
                    srv.bpDynamicPayRequestAsync(1309976, "shfd", "shfd47", 123, 10000, dateNow, timeNow, "88,140000,108;74,12000,;", "http://shahdforoush.ir/", 123, 33333);

                    var result = srv.bpPayRequest(1309976, "shfd", "shfd47", 123, 10000, dateNow, timeNow, "88,140000,108;74,12000,;", "http://shahdforoush.ir/", 123);//Request.Form["RefNum"], Request.Form["MID"]);
                    //PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                    //string result = bpService.bpReversalRequest(1309976, "shfd", "shfd47", 123, 10000, 321);//Int64.Parse(ReversalOrderIdTextBox.Text),Int64.Parse(ReversalSaleOrderIdTextBox.Text),Int64.Parse(ReversalSaleReferenceIdTextBox.Text));

                    Response.Write(result);

                    //if (Convert.ToInt32(result) > 0)
                    //{
                    //    isError = false;
                    //    succeedMsg = "بانک صحت رسيد ديجيتالي شما را تصديق نمود. فرايند خريد تکميل گشت";
                    //    Response.Write(succeedMsg);
                    //}

                    //else
                    //{
                    //    Response.Write(TransactionChecking(Convert.ToInt32(result)));
                    //}
                }
                else
                {
                    isError  = true;
                    errorMsg = "متاسفانه بانک خريد شما را تاييد نکرده است";

                    if (transactionState.Equals("Canceled By User") || transactionState.Equals(string.Empty))
                    {
                        // Transaction was canceled by user
                        isError  = true;
                        errorMsg = "تراكنش توسط خريدار كنسل شد";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Invalid Amount"))
                    {
                        // Amount of revers teransaction is more than teransaction
                        isError  = true;
                        errorMsg = "2";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Invalid Transaction"))
                    {
                        // Can not find teransaction
                        isError  = true;
                        errorMsg = "3";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Invalid Card Number"))
                    {
                        // Card number is wrong
                        isError  = true;
                        errorMsg = "4";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("No Such Issuer"))
                    {
                        // Issuer can not find
                        isError  = true;
                        errorMsg = "5";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Expired Card Pick Up"))
                    {
                        // The card is expired
                        isError  = true;
                        errorMsg = "6";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Allowable PIN Tries Exceeded Pick Up"))
                    {
                        // For third time user enter a wrong PIN so card become invalid
                        isError  = true;
                        errorMsg = "7";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Incorrect PIN"))
                    {
                        // Pin card is wrong
                        isError  = true;
                        errorMsg = "8";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Exceeds Withdrawal Amount Limit"))
                    {
                        // Exceeds withdrawal from amount limit
                        isError  = true;
                        errorMsg = "9";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Transaction Cannot Be Completed"))
                    {
                        // PIN and PAD are currect but Transaction Cannot Be Completed
                        isError  = true;
                        errorMsg = "10";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Response Received Too Late"))
                    {
                        // Timeout occur
                        isError  = true;
                        errorMsg = "11";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Suspected Fraud Pick Up"))
                    {
                        // User did not insert cvv2 & expiredate or they are wrong.
                        isError  = true;
                        errorMsg = "12";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("No Sufficient Funds"))
                    {
                        // there are not suficient funds in the account
                        isError  = true;
                        errorMsg = "13";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("Issuer Down Slm"))
                    {
                        // The bank server is down
                        isError  = true;
                        errorMsg = "14";
                        Response.Write(errorMsg);
                    }
                    else if (transactionState.Equals("TME Error"))
                    {
                        // unknown error occur
                        isError  = true;
                        errorMsg = "15";
                        Response.Write(errorMsg);
                    }
                }
            }
        }

        catch (Exception ex)
        {
        }
    }
Example #14
0
        public ConfirmPaymentDTO AcceptPayment(PaymentDTO payment)
        {
            if (payment.BankId == (int)BanksEnum.MellatBank)
            {
                var paymentObj = walletDAO.SelectPayment(new PaymentDTO {
                    BankId = payment.BankId, RequestKey = payment.RequestKey
                })?.FirstOrDefault();

                if (paymentObj != null)
                {
                    if (payment.Result == 0)
                    {
                        PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                        var res = bpService.bpVerifyRequest(
                            Convert.ToInt64(ConfigurationManager.AppSettings["Mellat_TerminalId"]),
                            ConfigurationManager.AppSettings["Username"],
                            ConfigurationManager.AppSettings["UserPassword"],
                            Convert.ToInt64(paymentObj.OrderId),
                            Convert.ToInt64(paymentObj.OrderId),
                            Convert.ToInt64(payment.TraceNumber)
                            );
                        if (res == "0")
                        {
                            paymentObj.Status      = (int)PaymentStatusEnum.Commit;
                            paymentObj.TraceNumber = payment.TraceNumber;
                            paymentObj.Result      = 0;
                            walletDAO.UpdatePayment(paymentObj);
                            walletDAO.InsertTransaction(new TransactionDTO
                            {
                                CurrentBalance    = GetStudentCurrentBalance(paymentObj.stcode) + paymentObj.Amount,
                                stcode            = paymentObj.stcode,
                                TransactionTypeId = (int)TransactionTypeEnum.Deposit,
                                Amount            = paymentObj.Amount
                            });
                            //TODO: log
                            return(new ConfirmPaymentDTO {
                                Message = "ﺗﺮﺍﻛﻨﺶ ﺑﺎ ﻣﻮﻓﻘﻴﺖ ﺍﻧﺠﺎﻡ ﺷﺪ", Result = true, stcode = paymentObj.stcode
                            });
                        }
                        else
                        {
                            paymentObj.Status = (int)PaymentStatusEnum.RollBack;
                            walletDAO.UpdatePayment(paymentObj);
                            return(new ConfirmPaymentDTO {
                                Result = false, Message = ".وجه مبلغ به حساب واحد دانشگاهی واریز نشد چنانچه پس از 72 ساعت آینده به حساب شما برگشت داده نشد مجددا پرداخت نمایید ", stcode = paymentObj.stcode
                            });
                        }
                    }
                    else
                    {
                        paymentObj.Status = (int)PaymentStatusEnum.Failed;
                        walletDAO.UpdatePayment(paymentObj);
                        return(new ConfirmPaymentDTO {
                            Result = false, Message = TranslateMellatError(Convert.ToInt32(payment.Result)), stcode = paymentObj.stcode
                        });
                        //return TranslateMellatError(Convert.ToInt32(result));
                    }
                }
                else
                {
                    return new ConfirmPaymentDTO {
                               Message = "شناسه پرداخت صحیح نیست", Result = false, stcode = ""
                    }
                };
            }
            return(new ConfirmPaymentDTO {
                Message = "امکان برقراری ارتباط با بانک وجود ندارد", Result = false, stcode = ""
            });
        }
Example #15
0
        public PayRequestResultDTO AddPayment(PaymentDTO payment)
        {
            string log        = DateTime.Now + " * ";
            var    RequestKey = string.Empty;
            var    Result     = string.Empty;
            var    gateway    = string.Empty;
            var    payDate    = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0');
            var    payTime    = DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0');
            var    PayerId    = long.Parse(payment.stcode + payment.stcode.ToPayerId());

            log += "payerID=" + PayerId + " * ";
            Random random = new Random();
            long   orderid;

            do
            {
                orderid = random.Next(100, 100000000);
            } while (walletDAO.SelectPayment(new PaymentDTO {
                OrderId = orderid, BankId = payment.BankId
            }).Count() > 0);
            log += "orderid=" + orderid + " * ";

            if (payment.BankId == Convert.ToInt32(BanksEnum.MellatBank))
            {
                //read config
                gateway = ConfigurationManager.AppSettings["PgwSite"];
                var callback   = ConfigurationManager.AppSettings["Mellat_Wallet_CallBackURL"];
                var terminalId = Convert.ToInt64(ConfigurationManager.AppSettings["Mellat_TerminalId"]);
                var userName   = ConfigurationManager.AppSettings["Username"];
                var password   = ConfigurationManager.AppSettings["UserPassword"];

                //call web service
                PaymentGatewayImplService bpService = new PaymentGatewayImplService();
                var result = bpService.bpPayRequest(terminalId, userName, password, orderid, Convert.ToInt64(payment.Amount), payDate, payTime, payment.stcode, callback, PayerId);
                log += "result=" + result + " * ";
                var resultArray = result.Split(',');
                log   += "resultArray=" + resultArray + " * ";
                Result = resultArray[0];
                if (resultArray.Length > 1)
                {
                    RequestKey = resultArray[1];
                }
                log += "RequestKey=" + RequestKey + " * ";
            }



            payment.OrderId       = orderid;
            payment.CreateDate    = DateTime.Now;
            payment.PayType       = Convert.ToInt32(PayTypeEnum.OnlineTopUp);
            payment.RequestKey    = RequestKey;
            payment.Result        = -1;
            payment.RetrivalRefNo = RequestKey;
            payment.Status        = (int)PaymentStatusEnum.New;
            log += "resultTranslate= " + TranslateMellatError(Convert.ToInt32(Result)) + " * ";
            log += "GateWay= " + gateway + " * ";
            System.IO.File.AppendAllText(@"D:\web-folder\IAUEC\University\wallet\walletError.txt", "\r\n" + log);
            if (walletDAO.InsertPayment(payment) > 0)
            {
                return new PayRequestResultDTO {
                           GateWay = gateway, RefId = RequestKey, Result = TranslateMellatError(Convert.ToInt32(Result))
                }
            }
            ;
            log = "--72--";
            System.IO.File.AppendAllText(@"D:\web-folder\IAUEC\University\wallet\walletError.txt", "\r\n" + log);

            return(new PayRequestResultDTO {
                Result = "خطا در ثبت اطلاعات"
            });
        }