Example #1
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 #2
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 #3
0
        private bool VerifyTransaction(string reference_number, string res_num)
        {
            ir.shaparak.bpm.PaymentGatewayImplService bmService = new PaymentGatewayImplService();
            string strStatCode = bmService.bpVerifyRequest(_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);
            }
        }
        public void VerifyRequest(long saleReferenceId)
        {
            try
            {
                string Result = behPardakhtWebService.bpVerifyRequest(TerminalID, UserName, Password, OrderID, OrderID, saleReferenceId);

                foreach (ResCode resCode in System.Enum.GetValues(typeof(ResCode)))
                {
                    if (Helper.GetInt(Result) == (int)resCode && resCode != (int)ResCode.TransactionWasSuccessful)
                    {
                        throw new Exception(Language.GetString(resCode.ToString()));
                    }
                }

                SettleRequest(saleReferenceId);
            }
            catch
            {
                InquiryRequest(saleReferenceId);
            }
        }
Example #5
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 = ""
            });
        }