예제 #1
0
        public override IMovilwayApiResponse PerformUtibaOperation(IMovilwayApiRequest requestObject, UMarketSCClient utibaClientProxy, String sessionID)
        {
            PayStockRequestBody  request  = requestObject as PayStockRequestBody;
            PayStockResponseBody response = null;

            payStockResponse utibaPayStockResponse = utibaClientProxy.payStock(new payStock()
            {
                payStockRequest = new payStockRequestType()
                {
                    sessionid     = sessionID,
                    wait          = false,
                    waitSpecified = true,
                    device_type   = request.DeviceType,
                    amount        = request.Amount,
                    details       = ("Bank: " + request.BankName ?? "NULL") + " - Description: " + (request.Description ?? "NULL") + " - REF.: " + (request.TransactionReference ?? "NULL")
                }
            });

            if (utibaPayStockResponse != null)
            {
                response = new PayStockResponseBody()
                {
                    ResponseCode    = Utils.BuildResponseCode(utibaPayStockResponse.payStockReturn.result, utibaPayStockResponse.payStockReturn.result_namespace),
                    ResponseMessage = utibaPayStockResponse.payStockReturn.result_message,
                    Fee             = utibaPayStockResponse.payStockReturn.fee,
                    TransactionID   = utibaPayStockResponse.payStockReturn.transid
                };
            }
            return(response);
        }
예제 #2
0
        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);
        }