Example #1
0
        /// <summary>
        /// استعلام کارت مقصد در عملبات کارت به کارت
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> FundInquiryRequestAsync(FundTransferRequest model)
        {
            try
            {
                var fundInquiry   = new FundInquiry(model.CustomerId);
                var fundInquiryIn = new fundInquiryIn()
                {
                    authInfo = new authInfo()
                    {
                        userName = Request.AuthInfo.Username,
                        password = Request.AuthInfo.Password
                    }
                };

                fundInquiryIn.merchantID = Request.MerchantID;
                fundInquiryIn.terminalID = Request.TerminalID;
                fundInquiryIn.date       = Request.Date;
                fundInquiryIn.time       = Request.Time;
                fundInquiryIn.localIP    = Request.LocalIP;
                fundInquiryIn.PAN        = model.PAN;
                fundInquiryIn.PINBlock   = model.PINBlock;
                fundInquiryIn.serial     = Request.Serial;
                fundInquiryIn.STAN       = Request.STAN;
                fundInquiryIn.custMobile = Request.Mobile;
                fundInquiryIn.invoiceNo  = Request.InvoiceNo;
                fundInquiryIn.amount     = model.Amount;
                fundInquiryIn.destPAN    = model.DestPAN;

                SoapMobileClient soapMobileClient = new SoapMobileClient();

                var resultFundTransfer     = soapMobileClient.fundInquiry(fundInquiryIn);
                var resultRequestCPMessage =
                    TransactionMessage(resultFundTransfer.responseCode, resultFundTransfer.responseMsg);
                if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
                {
                    fundInquiry.Success  = false;
                    fundInquiry.RefNo    = resultFundTransfer.refNo;
                    fundInquiry.Fullname = string.Empty;
                    return(resultRequestCPMessage);
                }
                else
                {
                    fundInquiry.Success = true;
                    return(new ServiceResultClient()
                    {
                        Status = TransactionStatus.SuccessfulTransaction.ToString(),
                        RefNo = fundInquiry.RefNo,
                        Date = fundInquiry.Date,
                        Message = resultFundTransfer.firstName + " " + resultFundTransfer.lastName,
                        ClientRefNo = fundInquiryIn.STAN
                    });
                }
            }
            catch (Exception ex)
            {
                return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق"));
            }
        }
Example #2
0
        public IActionResult Post([FromBody] FundTransferRequest model)
        {
            var result = repository.AmountTransfer(model);

            if (!result)
            {
                return(NotFound("Error in Amount transfer"));
            }
            return(Ok(result));
        }
        public bool AmountTransfer(FundTransferRequest model)
        {
            var            dbcontext      = new OnlinebankingContext();
            var            amountTransfer = new AmountTransfer();
            AmountTransfer objAmt         = new AmountTransfer();
            var            Frmbalance     = new OnlinebankingContext().Account.Where(x => x.AccountNo == model.CustAccountNo).OrderByDescending(x => x.Created.Value).Select(x => x.Amount).FirstOrDefault();

            if (Frmbalance < model.Amount || Frmbalance < 0 || Frmbalance == null)
            {
                return(false);
            }
            else
            {
                var     Tobalance          = new OnlinebankingContext().Account.Where(x => x.AccountNo == model.BenAccountNo).OrderByDescending(x => x.Created.Value).Select(x => x.Amount).FirstOrDefault();
                decimal FromAccountBalance = Convert.ToDecimal(Frmbalance) - Convert.ToDecimal(model.Amount);
                decimal ToAccountBalance   = Convert.ToDecimal(Tobalance) + Convert.ToDecimal(model.Amount);

                objAmt.FromAccount = model.CustAccountNo;
                objAmt.ToAccount   = model.BenAccountNo;
                objAmt.Amount      = model.Amount;
                objAmt.Created     = DateTime.Now;
                dbcontext.AmountTransfer.Add(objAmt);
                int id = dbcontext.SaveChanges();
                if (id > 0)
                {
                    Account obj = new Account();
                    obj.AccountNo = model.CustAccountNo;
                    obj.Amount    = FromAccountBalance;
                    obj.Created   = DateTime.Now;
                    dbcontext.Account.Add(obj);
                    int frmid = dbcontext.SaveChanges();
                    if (frmid > 0)
                    {
                        Account obj1 = new Account();
                        obj1.AccountNo = model.BenAccountNo;
                        obj1.Amount    = ToAccountBalance;
                        obj1.Created   = DateTime.Now;
                        dbcontext.Account.Add(obj1);
                        dbcontext.SaveChanges();
                    }

                    return(true);
                }
            }
            return(false);
        }
 public async Task <ServiceResultClient> FundTransferRequest(FundTransferRequest model)
 {
     return(await TransactionService.FundTransferRequestAsync(model));
 }
Example #5
0
        /// <summary>
        /// عملبات کارت به کارت
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> FundTransferRequestAsync(FundTransferRequest model)
        {
            try
            {
                var fundTransfer = new FundTransfer(model.CustomerId);

                var fundTransferIn = new fundTransferIn()
                {
                    authInfo = new authInfo()
                    {
                        userName = Request.AuthInfo.Username,
                        password = Request.AuthInfo.Password
                    }
                };

                fundTransfer.MerchantID      = fundTransferIn.merchantID = Request.MerchantID;
                fundTransferIn.terminalID    = Request.TerminalID;
                fundTransfer.Date            = fundTransferIn.date = Request.Date;
                fundTransfer.Time            = fundTransferIn.time = Request.Time;
                fundTransferIn.localIP       = Request.LocalIP;
                fundTransfer.PAN             = fundTransferIn.PAN = model.PAN;
                fundTransferIn.PINBlock      = model.PINBlock;
                fundTransferIn.serial        = Request.Serial;
                fundTransfer.STAN            = fundTransferIn.STAN = Request.STAN;
                fundTransfer.Track2Ciphered  = model.Track2Ciphered;
                fundTransferIn.custMobile    = Request.Mobile;
                fundTransfer.InvoiceNo       = fundTransferIn.invoiceNo = Request.InvoiceNo;
                fundTransfer.Amount          = fundTransferIn.amount = model.Amount;
                fundTransfer.DestPAN         = fundTransferIn.destPAN = model.DestPAN;
                fundTransfer.DualData        = fundTransferIn.dualData;
                fundTransfer.VerificationCod = fundTransferIn.verificationCode;

                SoapMobileClient soapMobileClient = new SoapMobileClient();

                var resultFundTransfer     = soapMobileClient.fundTransfer(fundTransferIn);
                var resultRequestCPMessage = TransactionMessage(resultFundTransfer.responseCode, resultFundTransfer.responseMsg);
                if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
                {
                    fundTransfer.Success = false;
                    fundTransfer.RefNo   = resultFundTransfer.refNo;
                    fundTransfer.Amount  = resultFundTransfer.responseMsg;
                    return(resultRequestCPMessage);
                }
                else
                {
                    var settleReverseIn = new settleReverseIn()
                    {
                        authInfo   = fundTransferIn.authInfo,
                        custMobile = fundTransferIn.custMobile,
                        date       = fundTransferIn.date,
                        localIP    = fundTransferIn.localIP,
                        merchantID = fundTransferIn.merchantID,
                        orgRefNo   = resultFundTransfer.refNo,
                        terminalID = fundTransferIn.terminalID,
                        serial     = fundTransferIn.serial,
                        time       = fundTransferIn.time,
                        orgAmount  = fundTransferIn.amount,
                        transType  = "request",
                        STAN       = fundTransferIn.STAN,
                        version    = fundTransferIn.version
                    };
                    var resultSettlement        = soapMobileClient.settlement(settleReverseIn);
                    var resultSettlementMessage = TransactionMessage(resultSettlement.responseCode, resultSettlement.responseMsg);

                    resultSettlementMessage.ClientRefNo = settleReverseIn.STAN;
                    resultSettlementMessage.Date        = settleReverseIn.date;
                    resultSettlementMessage.RefNo       = settleReverseIn.orgRefNo;
                    resultSettlementMessage.Time        = settleReverseIn.time;

                    fundTransfer.Success = true;

                    return(resultSettlementMessage);
                }
            }
            catch (Exception)
            {
                return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق"));
            }
        }