Exemple #1
0
        /// <summary>
        /// پرداخت قبض
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> BillRequestAsync(BillRequest model)
        {
            try
            {
                var bill = new Bill(model.CustomerId);

                var billCpIn = new billCPIn();

                billCpIn.authInfo = new authInfo()
                {
                    userName = Request.AuthInfo.Username,
                    password = Request.AuthInfo.Password
                };
                bill.MerchantID         = billCpIn.merchantID = Request.MerchantID;
                billCpIn.terminalID     = Request.TerminalID;
                bill.Amount             = billCpIn.amount = model.Amount.ToString();
                bill.Date               = billCpIn.date = Request.Date;
                bill.Time               = billCpIn.time = Request.Time;
                billCpIn.localIP        = Request.LocalIP;
                bill.PAN                = billCpIn.PAN = model.PAN;
                billCpIn.PINBlock       = model.PINBlock;
                billCpIn.serial         = Request.Serial;
                bill.STAN               = billCpIn.STAN = Request.STAN;
                billCpIn.track2Ciphered = model.Track2Ciphered;
                billCpIn.custMobile     = Request.Mobile;
                bill.InvoiceNo          = billCpIn.invoiceNo = Request.InvoiceNo;
                bill.PaymentId          = billCpIn.paymentID = model.PaymentId;
                bill.BillId             = billCpIn.billID = model.BillId;

                SoapMobileClient s = new SoapMobileClient();

                var resultBillRequestCp    = s.billRequestCP(billCpIn);
                var resultRequestCPMessage = TransactionMessage(resultBillRequestCp.responseCode, resultBillRequestCp.responseMsg);
                if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
                {
                    bill.Success = false;
                    //var resultLog = await InsertLog(bill);
                    bill.RefNo = resultBillRequestCp.refNo;
                    return(resultRequestCPMessage);
                }
                else
                {
                    var settleReverseIn = new settleReverseIn()
                    {
                        authInfo   = billCpIn.authInfo,
                        custMobile = billCpIn.custMobile,
                        date       = billCpIn.date,
                        localIP    = billCpIn.localIP,
                        merchantID = billCpIn.merchantID,
                        orgRefNo   = resultBillRequestCp.refNo,
                        terminalID = billCpIn.terminalID,
                        serial     = billCpIn.serial,
                        time       = billCpIn.time,
                        orgAmount  = billCpIn.amount,
                        transType  = "bill",
                        STAN       = billCpIn.STAN,
                        version    = billCpIn.version
                    };
                    var resultSettlement        = s.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;

                    bill.Success =
                        resultSettlementMessage.Status == TransactionStatus.SuccessfulTransaction.ToString()
                            ? true
                            : false;
                    //var resultLog = await InsertLog(bill);

                    return(resultSettlementMessage);
                }
            }
            catch (Exception ex)
            {
                return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق"));
            }
        }
Exemple #2
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, "عملیات نا موفق"));
            }
        }
Exemple #3
0
        /// <summary>
        /// شارژ مستقیم
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> TopupSingleRequestAsync(TopupSingleRequest model)
        {
            try
            {
                var topupSingle = new TopupSingle(model.CustomerId);

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

                topupSingle.MerchantID   = topupCpIn.merchantID = Request.MerchantID;
                topupCpIn.terminalID     = Request.TerminalID;
                topupSingle.Date         = topupCpIn.date = Request.Date;
                topupSingle.Time         = topupCpIn.time = Request.Time;
                topupCpIn.localIP        = Request.LocalIP;
                topupSingle.PAN          = topupCpIn.PAN = model.PAN;
                topupCpIn.PINBlock       = model.PINBlock;
                topupCpIn.serial         = Request.Serial;
                topupSingle.STAN         = topupCpIn.STAN = Request.STAN;
                topupCpIn.track2Ciphered = model.Track2Ciphered;
                topupCpIn.custMobile     = Request.Mobile;
                topupSingle.InvoiceNo    = topupCpIn.invoiceNo = Request.InvoiceNo;
                topupSingle.Amount       = topupCpIn.amount = model.Amount;
                topupCpIn.profileId      = model.profileId;
                topupCpIn.mobile         = topupSingle.Mobile = model.Mobile;
                //topupCpIn.OrderType = 1;

                SoapMobileClient soapMobileClient = new SoapMobileClient();

                topupOut topupMTNCpSingle = null;
                if (new[] { "19", "20" }.Contains(model.profileId))
                {
                    topupMTNCpSingle = soapMobileClient.topupMTNCPSingle(topupCpIn);
                }
                else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId))
                {
                    topupMTNCpSingle = soapMobileClient.topupSetavalCPSingle(topupCpIn);
                }
                var resultRequestCPMessage = TransactionMessage(topupMTNCpSingle.responseCode, topupMTNCpSingle.responseMsg);
                if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
                {
                    topupSingle.Success = false;
                    topupSingle.RefNo   = topupMTNCpSingle.refNo;
                    topupSingle.Amount  = topupMTNCpSingle.responseMsg;
                    return(resultRequestCPMessage);
                }
                else
                {
                    var settleReverseIn = new settleReverseIn()
                    {
                        authInfo   = topupCpIn.authInfo,
                        custMobile = topupCpIn.custMobile,
                        date       = topupCpIn.date,
                        localIP    = topupCpIn.localIP,
                        merchantID = topupCpIn.merchantID,
                        orgRefNo   = topupMTNCpSingle.refNo,
                        terminalID = topupCpIn.terminalID,
                        serial     = topupCpIn.serial,
                        time       = topupCpIn.time,
                        orgAmount  = topupCpIn.amount,
                        STAN       = topupCpIn.STAN,
                        version    = topupCpIn.version
                    };

                    if (new[] { "19", "20" }.Contains(model.profileId))
                    {
                        settleReverseIn.transType = "topupmtn";
                    }
                    else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId))
                    {
                        settleReverseIn.transType = "topupsetaval";
                    }

                    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;

                    topupSingle.Success = true;
                    return(resultSettlementMessage);
                }
            }
            catch (Exception)
            {
                return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق"));
            }
        }
Exemple #4
0
        /// <summary>
        /// موجودی
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> BlanceRequestAsync(BalanceRequest model)
        {
            try
            {
                Balance balance     = new Balance(model.CustomerId);
                var     requestCpIn = new requestCPIn()
                {
                    authInfo = new authInfo()
                    {
                        userName = Request.AuthInfo.Username,
                        password = Request.AuthInfo.Password
                    }
                };

                balance.MerchantID         = requestCpIn.merchantID = Request.MerchantID;
                requestCpIn.terminalID     = Request.TerminalID;
                requestCpIn.amount         = "0";
                balance.Date               = requestCpIn.date = Request.Date;
                balance.Time               = requestCpIn.time = Request.Time;
                requestCpIn.localIP        = Request.LocalIP;
                balance.PAN                = requestCpIn.PAN = model.PAN;
                requestCpIn.PINBlock       = model.PINBlock;
                requestCpIn.serial         = Request.Serial;
                balance.STAN               = requestCpIn.STAN = Request.STAN;
                requestCpIn.track2Ciphered = model.Track2Ciphered;
                requestCpIn.custMobile     = Request.Mobile;
                balance.InvoiceNo          = requestCpIn.invoiceNo = Request.InvoiceNo;

                SoapMobileClient soapMobileClient = new SoapMobileClient();

                var resultBalanceCP        = soapMobileClient.balanceCP(requestCpIn);
                var resultRequestCPMessage = TransactionMessage(resultBalanceCP.responseCode, resultBalanceCP.responseMsg);
                if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
                {
                    balance.Success = false;
                    try
                    {
                        //log.InsertLog(balance, resultBalanceCP.responseCode);
                    }
                    catch (Exception)
                    {
                    }
                    balance.RefNo         = resultBalanceCP.refNo;
                    balance.BalanceAmount = resultBalanceCP.responseMsg;
                    return(resultRequestCPMessage);
                }
                else
                {
                    var settleReverseIn = new settleReverseIn()
                    {
                        authInfo   = requestCpIn.authInfo,
                        custMobile = requestCpIn.custMobile,
                        date       = requestCpIn.date,
                        localIP    = requestCpIn.localIP,
                        merchantID = requestCpIn.merchantID,
                        orgRefNo   = resultBalanceCP.refNo,
                        terminalID = requestCpIn.terminalID,
                        serial     = requestCpIn.serial,
                        time       = requestCpIn.time,
                        orgAmount  = requestCpIn.amount,
                        transType  = "balance",
                        STAN       = requestCpIn.STAN,
                        version    = requestCpIn.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;

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