예제 #1
0
        //process stock transfer for VinaPhone e-load system
        //ChungNN 08/2008
        private EPaySoap.OutputInfo ViettelLoad(string MerchantID, string targetMsIsdn, Int32 amount, OutputVTload OutputVTObj)
        {
            EPaySoap.OutputInfo retObj = new EPaySoap.OutputInfo();
            EPaySoap.Security   secObj = new Security();

            Random random = new Random();
            //int nCounter = random.Next(9000000);
            string strCounter = DateTime.Now.ToString("yyyyMMddHHMMss");

            //Login to Viettel eload system
            try
            {
                Viettel      viettelObj = new Viettel();
                OutputVTload loadObj    = new OutputVTload();
                loadObj     = viettelObj.load(targetMsIsdn, amount, strCounter);
                OutputVTObj = loadObj;

                //If load seccessfull
                if (loadObj.status == "0")
                {
                    retObj.status  = loadObj.status;
                    retObj.message = loadObj.message;
                    WriteLog("load on Viettel successfull. ( MerchantID=" + MerchantID + ",  targetMsIsdn=" + targetMsIsdn + ", amount=" + amount.ToString() + " )");
                }
                else
                {
                    //status = "1"
                    retObj.status  = "1";
                    retObj.message = loadObj.message;
                    WriteLog("load on Viettel failure. ( MerchantID=" + MerchantID + ", targetMsIsdn=" + targetMsIsdn + ", amount=" + amount.ToString() + " ) ");
                }
            }
            catch (Exception ex)
            {
                WriteLog("load on Viettel failure, Exception=" + ex.ToString());
                throw (ex);
            }

            return(retObj);
        }
예제 #2
0
        //direct topup progress
        //ChungNN 26/11/2008
        public OutputInfo load(string UserName, string Session_ID, string Request_ID, string MerchantID, string targetMsIsdn, Int32 amount)
        {
            //targetMsIsdn: so thue bao can nap tien (vd: 0912368466)
            //amount:       so tien can nap (vd: 10000)

            Security   secObj = new Security();
            OutputInfo retObj = new OutputInfo();

            EPaySoap.TransferProcess proObj = new EPaySoap.TransferProcess();

            string strUserName = UserName.Trim();
            string strSession_ID = Session_ID.Trim();
            string strRequest_ID = Request_ID.Trim();
            string strMerchantID = MerchantID.Trim();
            string strtargetMsIsdn = targetMsIsdn.Trim();
            string strProviderCode = string.Empty;
            string strRequest_Time, strResponse_Time;

            retObj = secObj.CheckValid(strUserName, strSession_ID, strRequest_ID, strMerchantID, strtargetMsIsdn, amount, ref strProviderCode);

            //if login failure (status in(1,2,3,4,5))
            if (retObj.status != "0")
            {
                return(retObj);
            }

            //If login successfull
            else
            {
                //log pending status before load
                strRequest_Time = DateTime.Now.ToString();
                proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, "2", "", "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strRequest_Time, "00", "log before load", strProviderCode);

                switch (strProviderCode)
                {
                    #region Vinaphone
                case "01":
                    try
                    {
                        //process transfer for VinaPhone e-load system
                        strRequest_Time = DateTime.Now.ToString();
                        retObj          = proObj.VinaLoad(strMerchantID, strtargetMsIsdn, amount);
                        //Thread.Sleep(AppConfiguration.VinaPhoneTimeout);

                        //log load result
                        strResponse_Time = DateTime.Now.ToString();
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, retObj.status, retObj.trans_id, "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strResponse_Time, "00", "message=" + retObj.message, strProviderCode);
                    }
                    catch (Exception ex)
                    {
                        strResponse_Time = DateTime.Now.ToString();
                        retObj.status    = "6";
                        retObj.message   = "Fail, occur an exception.";
                        proObj.WriteLog("load on VinaPhone ( targetMsIsdn=" + targetMsIsdn + ", amount = " + amount.ToString() + " ) failure." + Environment.NewLine + "Exception=" + ex.ToString());
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, "1", retObj.trans_id, "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strResponse_Time, "01", "Fail, occur an exception.", strProviderCode);
                    }
                    break;
                    #endregion

                    #region Viettel
                case "02":
                    try
                    {
                        //add "84" prefix if Viettel
                        if (strtargetMsIsdn.Substring(0, 1) != "84")
                        {
                            strtargetMsIsdn = "84" + strtargetMsIsdn.Substring(1, strtargetMsIsdn.Length - 2);
                        }

                        //process transfer for Viettel topup system
                        OutputVTload OutputVTObj = new OutputVTload();
                        retObj = proObj.ViettelLoad(strMerchantID, strtargetMsIsdn, amount, OutputVTObj);
                        //Thread.Sleep(AppConfiguration.VinaPhoneTimeout);

                        //log load result
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, retObj.status, retObj.trans_id, "0x200", strtargetMsIsdn, amount, AppConfiguration.ViettelClientID, "", OutputVTObj.request_transaction_time, OutputVTObj.response_transaction_time, OutputVTObj.response_code, "message=" + retObj.message, strProviderCode);
                    }
                    catch (Exception ex)
                    {
                        strResponse_Time = DateTime.Now.ToString();
                        retObj.status    = "6";
                        retObj.message   = "Fail, occur an exception.";
                        proObj.WriteLog("load on Viettel ( targetMsIsdn=" + targetMsIsdn + ", amount = " + amount.ToString() + " ) failure." + Environment.NewLine + "Exception=" + ex.ToString());
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, "1", retObj.trans_id, "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strResponse_Time, "01", "Fail, occur an exception.", strProviderCode);
                    }
                    break;
                    #endregion

                    #region Mobifone
                case "03":
                    try
                    {
                        //process transfer for Viettel MobiEz system
                        strRequest_Time = DateTime.Now.ToString();
                        retObj          = proObj.MobiLoad(strMerchantID, targetMsIsdn, (decimal)amount);

                        //log load result
                        strResponse_Time = DateTime.Now.ToString();
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, retObj.status, retObj.trans_id, "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strResponse_Time, "00", "message=" + retObj.message, strProviderCode);
                    }
                    catch (Exception ex)
                    {
                        strResponse_Time = DateTime.Now.ToString();
                        retObj.status    = "6";
                        retObj.message   = "Fail, occur an exception.";
                        proObj.WriteLog("load on Mobifone ( targetMsIsdn=" + targetMsIsdn + ", amount = " + amount.ToString() + " ) failure." + Environment.NewLine + "Exception=" + ex.ToString());
                        proObj.WriteLog_Load(strUserName, strSession_ID, strRequest_ID, strMerchantID, HttpContext.Current.Request.UserHostAddress, "1", retObj.trans_id, "0x200", strtargetMsIsdn, amount, "", "", strRequest_Time, strResponse_Time, "01", "Fail, occur an exception.", strProviderCode);
                    }
                    break;
                    #endregion

                default:
                    retObj.status  = "1";
                    retObj.message = "invalid provider.";
                    break;
                }
            }

            return(retObj);
        }