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