//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); }
//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); }