Beispiel #1
0
        //process stock transfer for MobiFone MobiEz system
        //ChungNN 08/2008
        private EPaySoap.OutputInfo MobiLoad(string MerchantID, string targetMsIsdn, decimal amount)
        {
            EPaySoap.OutputInfo retObj  = new EPaySoap.OutputInfo();
            Mobifone            mobiObj = new Mobifone();

            mobiEz.buyResponse loadObj = new buyResponse();

            try
            {
                loadObj = mobiObj.load(targetMsIsdn, amount);
                if (loadObj.buyReturn.result == 0)
                {
                    retObj.status  = "0";
                    retObj.message = "ok";
                    WriteLog("load on Mobifone successfull. ( MerchantID=" + MerchantID + ",  targetMsIsdn=" + targetMsIsdn + ", amount=" + amount.ToString() + " )");
                }
                else
                {
                    retObj.status  = "1";
                    retObj.message = "not ok";
                    WriteLog("load on Mobifone failure. ( MerchantID=" + MerchantID + ", targetMsIsdn=" + targetMsIsdn + ", amount=" + amount.ToString() + " ), buyReturn.result=" + loadObj.buyReturn.result.ToString() + ", buyReturn.result_namespace=" + loadObj.buyReturn.result_namespace);
                }
            }
            catch (Exception ex)
            {
                retObj.status  = "1";
                retObj.message = "not ok";
                WriteLog("load on Mobifone failure, Exception =" + ex.ToString());
                throw (ex);
            }

            return(retObj);
        }
Beispiel #2
0
        public mobiEz.buyResponse load(string Recipient, decimal Amount)
        {
            Security secObj = new Security();

            mobiEz.buyResponse buyResponseObj = new buyResponse();
            string             strPassword    = SrvProviderSessionManager.GetSessionInstance().GetSession("Mobifone");

            //Gen password
            strPassword = AppConfiguration.MobifoneUserName.ToLower() + AppConfiguration.MobifonePassword;
            strPassword = secObj.GetSHA1_HEX(strPassword).ToLower();
            strPassword = sessionid + strPassword;
            strPassword = secObj.GetSHA1_HEX(strPassword).ToUpper();

            //Console.Out.Write("pin=" + pin(sessionid, AppConfiguration.MobifoneUserName, strPassword, "0123456").ToString());

            try
            {
                int nCounter = 2;
                while (nCounter > 0)
                {
                    //login
                    if (login(sessionid, AppConfiguration.MobifoneUserName, strPassword))
                    {
                        try
                        {
                            mobiEz.buy            buyObj            = new buy();
                            mobiEz.buyRequestType buyRequestTypeObj = new buyRequestType();

                            buyRequestTypeObj.sessionid = sessionid;
                            buyRequestTypeObj.target    = "airtime";
                            buyRequestTypeObj.type      = 2;
                            buyRequestTypeObj.recipient = Recipient;
                            buyRequestTypeObj.amount    = Amount;
                            buyObj.buyRequest           = buyRequestTypeObj;

                            //invoke buy function
                            buyResponseObj = UMSObj.buy(buyObj);
                            if (buyResponseObj.buyReturn.result == 0)
                            {
                                nCounter = 0;
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                            throw (ex);
                        }
                    }
                    else
                    {
                        nCounter--;

                        try
                        {
                            sessionid = createsession();
                            if (SrvProviderSessionManager.GetSessionInstance().IsContainSesssion("MobifoneSession"))
                            {
                                SrvProviderSessionManager.GetSessionInstance().DelSession("MobifoneSession");
                            }
                            SrvProviderSessionManager.GetSessionInstance().AddSession(sessionid, "MobifoneSession");
                        }
                        catch (Exception ex)
                        {
                            throw (ex);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(buyResponseObj);
        }
Beispiel #3
0
        public override IMovilwayApiResponse PerformUtibaOperation(IMovilwayApiRequest requestObject, UMarketSCClient utibaClientProxy, String sessionID)
        {
            TopUpRequestBody request = requestObject as TopUpRequestBody;

            int timeOutSeconds = int.Parse(ConfigurationManager.AppSettings["DefaultTimeout"]);

            if (ConfigurationManager.AppSettings["TopUp_Timeout_" + request.MNO.ToLower()] != null)
            {
                timeOutSeconds = int.Parse(ConfigurationManager.AppSettings["TopUp_Timeout_" + request.MNO.ToLower()]);
            }

            utibaClientProxy.InnerChannel.OperationTimeout = new TimeSpan(0, 0, timeOutSeconds);


            TopUpResponseBody response = null;

            if (request.WalletType == WalletType.NotSpecified || request.WalletType == WalletType.Stock)
            {
                logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[TopUpProvider] [SEND-DATA] topupRequest {sessionid=" + sessionID + ",device_type=" + request.DeviceType + ",mno=" + request.MNO + ",amount=" + request.Amount +
                               ",recipient=" + request.Recipient + ",mno_defined_id=" + request.TerminalID + ",host_trans_ref=" + request.ExternalTransactionReference + "}");

                topupResponse utibaTopUpResponse = utibaClientProxy.topup(new topup()
                {
                    topupRequest = new topupRequestType()
                    {
                        sessionid      = sessionID,
                        device_type    = request.DeviceType,
                        mno            = request.MNO,
                        amount         = request.Amount,
                        recipient      = request.Recipient,
                        host_trans_ref = request.ExternalTransactionReference,
                        mno_defined_id = request.TerminalID
                    }
                });

                logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[TopUpProvider] [RECV-DATA] topupResponse {transid=" + utibaTopUpResponse.topupReturn.transid + ",result=" + utibaTopUpResponse.topupReturn.result +
                               ",result_namespace=" + utibaTopUpResponse.topupReturn.result_namespace + ",result_message=" + utibaTopUpResponse.topupReturn.result_message + "}");

                response = new TopUpResponseBody()
                {
                    ResponseCode    = Utils.BuildResponseCode(utibaTopUpResponse.topupReturn.result, utibaTopUpResponse.topupReturn.result_namespace),
                    ResponseMessage = utibaTopUpResponse.topupReturn.result_message,
                    TransactionID   = utibaTopUpResponse.topupReturn.transid,
                    ExternalTransactionReference = request.ExternalTransactionReference, //utibaTopUpResponse.topupReturn.trans_ext_reference,
                    Fee = utibaTopUpResponse.topupReturn.fee
                };
            }
            else if (request.WalletType == WalletType.eWallet)
            {
                logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[TopUpProvider] [SEND-DATA] buyRequest {sessionid=" + sessionID + ",device_type=" + request.DeviceType +
                               ",mno=" + request.MNO + ",amount=" + request.Amount + ",recipient=" + request.Recipient + "}");

                buyResponse buyResponse = utibaClientProxy.buy(new buy()
                {
                    buyRequest = new buyRequestType()
                    {
                        sessionid   = sessionID,
                        device_type = request.DeviceType,
                        target      = request.MNO,
                        amount      = request.Amount,
                        recipient   = request.Recipient
                    }
                });

                logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[TopUpProvider] [RECV-DATA] buyResponse {transid=" + buyResponse.buyReturn.transid + ",result=" + buyResponse.buyReturn.result +
                               ",result_namespace=" + buyResponse.buyReturn.result_namespace + ",result_message=" + buyResponse.buyReturn.result_message + "}");

                response = new TopUpResponseBody()
                {
                    ResponseCode    = Utils.BuildResponseCode(buyResponse.buyReturn.result, buyResponse.buyReturn.result_namespace),
                    ResponseMessage = buyResponse.buyReturn.result_message,
                    TransactionID   = buyResponse.buyReturn.transid,
                    ExternalTransactionReference = request.ExternalTransactionReference,
                    Fee = buyResponse.buyReturn.fee
                };
            }
            AuthenticationData cascadeAuth = new AuthenticationData()
            {
                SessionID = sessionID
            };

            GetBalanceResponseBody balanceResponse = new ServiceExecutionDelegator <GetBalanceResponseBody, GetBalanceRequestBody>().ResolveRequest(new GetBalanceRequestBody()
            {
                AuthenticationData = cascadeAuth,
                DeviceType         = request.DeviceType
            }, ApiTargetPlatform.Utiba, ApiServiceName.GetBalance);

            if (response != null)
            {
                response.StockBalance  = balanceResponse.StockBalance.Value;
                response.WalletBalance = balanceResponse.WalletBalance.Value;
                response.PointBalance  = balanceResponse.PointsBalance.Value;
            }
            return(response);
        }