Beispiel #1
0
        public static RetunrvalueType Pay(string Controller, string Action, string Gateway, Payment Payment, int Price, Controller ContextController)
        {
            string          RedirectPage = ContextController?.Url.Action(Action, Controller);
            RetunrvalueType Result       = new RetunrvalueType();

            switch (Gateway)
            {
            case "Mellat":
                Result = MellatPayment(Payment, Price, RedirectPage);
                break;

            default:
                Result.Message = "هیچ درگاهی انتخاب نشده";
                break;
            }
            return(Result);
        }
Beispiel #2
0
        public static RetunrvalueType MellatPayment(Payment Payment, int Price, string RedirectPage)
        {
            BypassCertificateError();
            RetunrvalueType retunrvalueType = new RetunrvalueType();
            var             card            = db.Cards.Where(i => i.name.Equals("Mellat", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
            var             payment         = new Anbarii.ir.shaparak.bpm.PaymentGatewayImplService();
            string          result          = payment.bpPayRequest(
                long.Parse(card?.TerminalID, CultureInfo.CurrentCulture),
                card?.UserName,
                card?.Password,
                (Payment?.PaymentId) ?? 0,
                Price,
                GetDate(),
                GetTime(),
                "خرید از سایت تحلیل داده",
                RedirectPage,
                0
                );

            if (result != null)
            {
                // 45zm24554654,0
                string[] ResultArray = result.Split(',');
                if (ResultArray[0].ToString(CultureInfo.CurrentCulture) == "0")
                {
                    UpdatePayment(Payment, "-100", 0, ResultArray[1], 0);
                    NameValueCollection collection = new NameValueCollection();
                    collection.Add("RefId", ResultArray[1]);
                    retunrvalueType.Write = Helper.PreparePOSTForm("https://bpm.shaparak.ir/pgwchannel/startpay.mellat", collection);
                }
                else
                {
                    UpdatePayment(Payment, ResultArray[0].ToString(CultureInfo.CurrentCulture), 0, null, 0);
                    retunrvalueType.Message = PaymentResultclass.MellatResult(ResultArray[0]);
                }
            }
            else
            {
                retunrvalueType.Message = "امکان اتصال به درگاه بانک وجود ندارد";
            }
            payment.Dispose();
            return(retunrvalueType);
        }
Beispiel #3
0
        public static RetunrvalueType PaymentResult(string RefId, string ResCode, long saleOrderId, long SaleReferenceId)
        {
            RetunrvalueType retunrvalueType = new RetunrvalueType();

            if (SaleReferenceId > 0)
            {
                try
                {
                    var payment = db.Payments.Where(i => i.PaymentId.Equals(saleOrderId)).FirstOrDefault();
                    switch (payment.Card.name)
                    {
                    case "Mellat":
                        retunrvalueType = MellatPaymentResult(RefId, ResCode, payment, SaleReferenceId);
                        break;

                    default:
                        retunrvalueType.Message = "هیچ درگاهی انتخاب نشده";
                        break;
                    }
                }
                catch (Exception ex)
                {
                    retunrvalueType.Message = ex + "<br>" + " وضعیت:مشکلی در پرداخت بوجود آمده ، در صورتی که وجه پرداختی از حساب بانکی شما کسر شده است آن مبلغ به صورت خودکار برگشت داده خواهد شد ";
                    retunrvalueType.Write   = "**************";
                    return(retunrvalueType);
                }
            }
            else
            {
                //ResCode=StatusPayment
                if (!string.IsNullOrEmpty(ResCode))
                {
                    retunrvalueType.Message = PaymentResultclass.MellatResult(ResCode);
                    retunrvalueType.Write   = "**************";
                }
                else
                {
                    retunrvalueType.Message = "رسید قابل قبول نیست";
                    retunrvalueType.Write   = "**************";
                }
            }
            return(retunrvalueType);
        }
Beispiel #4
0
        public static RetunrvalueType MellatPaymentResult(string RefId, string ResCode, Payment payment, long SaleReferenceId)
        {
            RetunrvalueType retunrvalue = new RetunrvalueType();

            BypassCertificateError();

            try
            {
                var    bpService = new Anbarii.ir.shaparak.bpm.PaymentGatewayImplService();
                string Result;
                Result = bpService.bpVerifyRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId);
                if (!string.IsNullOrEmpty(Result))
                {
                    if (Result == "0")
                    {
                        string IQresult;
                        IQresult = bpService.bpInquiryRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId);
                        if (IQresult == "0")
                        {
                            UpdatePayment(payment, Result, SaleReferenceId, RefId, 1);
                            retunrvalue.Message = "پرداخت با موفقیت انجام شد.";
                            retunrvalue.Write   = SaleReferenceId.ToString(CultureInfo.CurrentCulture);
                            // پرداخت نهایی
                            string Sresult;
                            // تایید پرداخت
                            Sresult = bpService.bpSettleRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId);
                            if (Sresult != null)
                            {
                                if (Sresult == "0" || Sresult == "45")
                                {
                                    //تراکنش تایید و ستل شده است
                                }
                                else
                                {
                                    //تراکنش تایید شده ولی ستل نشده است
                                }
                            }
                        }
                        else
                        {
                            string Rvresult;
                            //عملیات برگشت دادن مبلغ
                            Rvresult            = bpService.bpReversalRequest(long.Parse(payment.Card.TerminalID, CultureInfo.CurrentCulture), payment.Card.UserName, payment.Card.Password, payment.PaymentId, payment.PaymentId, SaleReferenceId);
                            retunrvalue.Message = "تراکنش بازگشت داده شد";
                            retunrvalue.Write   = "**************";
                            UpdatePayment(payment, IQresult, SaleReferenceId, RefId, 0);
                        }
                    }
                    else
                    {
                        retunrvalue.Message = PaymentResultclass.MellatResult(Result);
                        retunrvalue.Write   = "**************";
                        UpdatePayment(payment, Result, SaleReferenceId, RefId, 0);
                    }
                }
                else
                {
                    retunrvalue.Message = "شماره رسید قابل قبول نیست";
                    retunrvalue.Write   = "**************";
                }
            }
            catch (Exception ex)
            {
                string errors = ex.Message;
                retunrvalue.Message = "مشکلی در پرداخت به وجود آمده است ، در صورتیکه وجه پرداختی از حساب بانکی شما کسر شده است آن مبلغ به صورت خودکار برگشت داده خواهد شد";
                retunrvalue.Write   = "**************";
            }

            return(retunrvalue);
        }