public PayStockExtendedResponse PayStockExtended(PayStockExtendedRequest externalRequest) { Log(Logger.LogMessageType.Info, "-> -------------------- Comienza la ejecución del método Stock.PayStock", Logger.LoggingLevelType.Medium); LoginRequestInternal loginRequest = new LoginRequestInternal() { DeviceType = externalRequest.Request.DeviceType, Password = externalRequest.Request.Password, User = externalRequest.Request.Username }; LoginResponseInternal loginResponse = AuthenticationProvider.LoginInternal(loginRequest); PayStockRequestInternal internalRequest = new PayStockRequestInternal() { SessionID = loginResponse.SessionID, Amount = externalRequest.Request.Amount, DeviceType = externalRequest.Request.DeviceType, Bank = externalRequest.Request.Bank, Account = externalRequest.Request.Account, Voucher = externalRequest.Request.Voucher }; PayStockResponseInternal internalResponse = PayStockInternal(internalRequest); PayStockExtendedResponse externalResponse = new PayStockExtendedResponse() { Response = new PayStockExtendedResponseBody() { ResponseCode = internalResponse.ResponseCode, ResponseMessage = internalResponse.ResponseMessage, TransactionID = internalResponse.TransactionID, Fee = internalResponse.Fee } }; Log(Logger.LogMessageType.Info, "-> -------------------- Termina la ejecución del método Stock.PayStock", Logger.LoggingLevelType.Medium); return(externalResponse); }
private PayStockResponseInternal PayStockInternal(PayStockRequestInternal internalRequest) { Log(Logger.LogMessageType.Info, "-> -------------------- Comienza la ejecución del método Stock.PayStockInternal", Logger.LoggingLevelType.Medium); PayStockResponseInternal internalResponse = null; try { UMarketSCClient utibaClient = new UMarketSCClient(); payStockResponse utibaPayStockResponse = null; using (OperationContextScope scope = new OperationContextScope(utibaClient.InnerChannel)) { HttpRequestMessageProperty messageProperty = new HttpRequestMessageProperty(); messageProperty.Headers.Add(HttpRequestHeader.UserAgent, UserAgent); OperationContext.Current.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, messageProperty); Log(Logger.LogMessageType.Info, "-> -------------------- " + String.Format("Parámetros Recibidos Stock.PayStockInternal: " + "SessionID={0}, DeviceType={1}, Amount={2}, Bank={3}, Account={4}, Voucher={5}", internalRequest.SessionID, internalRequest.DeviceType, internalRequest.Amount, internalRequest.Bank, internalRequest.Account, internalRequest.Voucher), Logger.LoggingLevelType.Low); Log(Logger.LogMessageType.Info, "-> -------------------- " + String.Format("Parámetros Enviados Stock.PayStockInternal: " + "SessionID={0}, DeviceType={1}, Amount={2}, Bank={3}, Account={4}, Voucher={5}", internalRequest.SessionID, internalRequest.DeviceType, internalRequest.Amount, internalRequest.Bank, internalRequest.Account, internalRequest.Voucher), Logger.LoggingLevelType.Low); utibaPayStockResponse = utibaClient.payStock(new payStock() { payStockRequest = new payStockRequestType() { sessionid = internalRequest.SessionID, device_type = internalRequest.DeviceType, wait = false, waitSpecified = true, amount = internalRequest.Amount, details = " Banco: " + internalRequest.Bank + " Cuenta: " + internalRequest.Account + " N°Depósito: " + internalRequest.Voucher } }); } if (utibaPayStockResponse != null) { internalResponse = new PayStockResponseInternal() { ResponseCode = utibaPayStockResponse.payStockReturn.result, ResponseMessage = utibaPayStockResponse.payStockReturn.result_message, Fee = utibaPayStockResponse.payStockReturn.fee, TransactionID = utibaPayStockResponse.payStockReturn.transid }; } Log(Logger.LogMessageType.Info, "-> -------------------- " + String.Format("Resultado Obtenido Stock.PayStockInternal: ResponseCode={0}, ResponseMessage={1}, TransactionID={2}, " + "Fee={3}", internalResponse.ResponseCode, internalResponse.ResponseMessage, internalResponse.TransactionID, internalResponse.Fee), Logger.LoggingLevelType.Low); } catch (Exception ex) { Log(Logger.LogMessageType.Error, "Ocurrio una exception procesando el metodo Stock.PayStockInternal, los detalles son: " + ex.ToString(), Logger.LoggingLevelType.Low); return(null); } Log(Logger.LogMessageType.Info, "-> -------------------- Termina la ejecución del método Stock.PayStockInternal", Logger.LoggingLevelType.Medium); return(internalResponse); }