/// <summary> /// Envia o comando para o integrador ficasl. /// </summary> /// <param name="adicionarNumeroSessao">Se adicionar o número da sessão nos parametros.</param> /// <returns></returns> public IntegradorRetorno Enviar(bool adicionarNumeroSessao = true) { Guard.Against <ArgumentNullException>(NomeComponente.IsEmpty(), "Componente não definido."); Guard.Against <ArgumentNullException>(NomeMetodo.IsEmpty(), "Metodo não definido."); var envio = NovoEnvio(); if (adicionarNumeroSessao) { GerarNumeroSessao(); Parametros.InsertParametro(0, "numeroSessao", NumeroSessao.ToString()); } envio.Identificador.Valor = NumeroSessao.ToString(); envio.Componente.Metodo.Parametros.AddRange(Parametros); EnviarComando(envio); AguardarResposta(NumeroSessao.ToString()); var resposta = IntegradorRetorno.Load(UltimaResposta); return(resposta); }
/// <summary> /// Pega a resposta fiscal do pagamento. /// </summary> /// <param name="idFila"></param> /// <param name="chaveAcesso"></param> /// <param name="nsu"></param> /// <param name="numeroAprovacao"></param> /// <param name="bandeira"></param> /// <param name="adquirinte"></param> /// <param name="cnpj"></param> /// <param name="impressaofiscal"></param> /// <param name="numeroDocumento"></param> /// <returns></returns> public IntegradorRetorno RespostaFiscal(int idFila, string chaveAcesso, string nsu, string numeroAprovacao, string bandeira, string adquirinte, string cnpj, string impressaofiscal, string numeroDocumento) { NomeComponente = VFPName; NomeMetodo = "RespostaFiscal"; var envio = NovoEnvio(); var parametros = envio.Componente.Metodo.Parametros; parametros.AddParametro("idFila", idFila.ToString()); parametros.AddParametro("ChaveAcesso", chaveAcesso); parametros.AddParametro("Nsu", nsu); parametros.AddParametro("NumerodeAprovacao", numeroAprovacao); parametros.AddParametro("Bandeira", bandeira); parametros.AddParametro("Adquirente", adquirinte); parametros.AddParametro("Cnpj", cnpj); parametros.AddParametro("ImpressaoFiscal", impressaofiscal); parametros.AddParametro("NumeroDocumento", numeroDocumento); envio.Componente.Metodo.Construtor = new IntegradorConstrutor(); envio.Componente.Metodo.Construtor.Parametros.AddParametro("chaveAcessoValidador", Configuracoes.ChaveAcessoValidador); EnviarComando(envio); AguardarResposta(NumeroSessao.ToString()); return(IntegradorRetorno.Load(UltimaResposta)); }
/// <summary> /// Envia a situação do pagamento. /// </summary> /// <param name="codigoAutorizacao"></param> /// <param name="bin"></param> /// <param name="donoCartao"></param> /// <param name="dataExpiracao"></param> /// <param name="instituicaoFinanceira"></param> /// <param name="parcelas"></param> /// <param name="codigoPagamento"></param> /// <param name="valorPagamento"></param> /// <param name="idFila"></param> /// <param name="tipo"></param> /// <param name="ultimosQuatroDigitos"></param> /// <returns></returns> public IntegradorRetorno EnviarStatusPagamento(string codigoAutorizacao, string bin, string donoCartao, string dataExpiracao, string instituicaoFinanceira, int parcelas, string codigoPagamento, decimal valorPagamento, int idFila, string tipo, int ultimosQuatroDigitos) { NomeComponente = VFPName; NomeMetodo = "EnviarStatusPagamento"; var envio = NovoEnvio(); var parametros = envio.Componente.Metodo.Parametros; parametros.AddParametro("CodigoAutorizacao", codigoAutorizacao); parametros.AddParametro("Bin", bin); parametros.AddParametro("DonoCartao", donoCartao); parametros.AddParametro("DataExpiracao", dataExpiracao); parametros.AddParametro("InstituicaoFinanceira", instituicaoFinanceira); parametros.AddParametro("Parcelas", parcelas.ToString()); parametros.AddParametro("CodigoPagamento", codigoPagamento); parametros.AddParametro("ValorPagamento", $"{valorPagamento:0.00}".Replace('.', ',')); parametros.AddParametro("IdFila", idFila.ToString()); parametros.AddParametro("Tipo", tipo); parametros.AddParametro("UltimosQuatroDigitos", ultimosQuatroDigitos.ToString()); envio.Componente.Metodo.Construtor = new IntegradorConstrutor(); envio.Componente.Metodo.Construtor.Parametros.AddParametro("chaveAcessoValidador", Configuracoes.ChaveAcessoValidador); EnviarComando(envio); AguardarResposta(NumeroSessao.ToString()); return(IntegradorRetorno.Load(UltimaResposta)); }
/// <summary> /// Enviar as informações de pagamento para o integrador fiscal. /// </summary> /// <param name="chaveRequisicao"></param> /// <param name="estabelecimento"></param> /// <param name="serialPOS"></param> /// <param name="cnpj"></param> /// <param name="icmsBase"></param> /// <param name="valorTotalVenda"></param> /// <param name="origemPagamento"></param> /// <param name="habilitarMultiplosPagamentos"></param> /// <param name="habilitarControleAntiFraude"></param> /// <param name="codigoMoeda"></param> /// <param name="emitirCupomNFCE"></param> /// <returns></returns> public IntegradorRetorno EnviarPagamento(string chaveRequisicao, string estabelecimento, string serialPOS, string cnpj, decimal icmsBase, decimal valorTotalVenda, string origemPagamento, bool habilitarMultiplosPagamentos = true, bool habilitarControleAntiFraude = false, string codigoMoeda = "BRL", bool emitirCupomNFCE = false) { NomeComponente = VFPName; NomeMetodo = "EnviarPagamento"; GerarNumeroSessao(); var envio = NovoEnvio(); var parametros = envio.Componente.Metodo.Parametros; parametros.AddParametro("ChaveRequisicao", chaveRequisicao); parametros.AddParametro("Estabelecimento", estabelecimento); parametros.AddParametro("SerialPOS", serialPOS); parametros.AddParametro("Cnpj", cnpj); parametros.AddParametro("IcmsBase", $"{icmsBase:0.00}".Replace('.', ',')); parametros.AddParametro("ValorTotalVenda", $"{valorTotalVenda:0.00}".Replace('.', ',')); parametros.AddParametro("HabilitarMultiplosPagamentos", habilitarMultiplosPagamentos ? "true" : "false"); parametros.AddParametro("HabilitarControleAntiFraude", habilitarControleAntiFraude ? "true" : "false"); parametros.AddParametro("CodigoMoeda", codigoMoeda); parametros.AddParametro("OrigemPagamento", origemPagamento); parametros.AddParametro("EmitirCupomNFCE", emitirCupomNFCE ? "true" : "false"); envio.Componente.Metodo.Construtor = new IntegradorConstrutor(); envio.Componente.Metodo.Construtor.Parametros.AddParametro("chaveAcessoValidador", Configuracoes.ChaveAcessoValidador); EnviarComando(envio); AguardarResposta(NumeroSessao.ToString()); return(IntegradorRetorno.Load(UltimaResposta)); }
/// <summary> /// Verifica a situação do validador. /// </summary> /// <param name="idFila"></param> /// <param name="cnpj"></param> /// <returns></returns> public IntegradorRetorno VerificarStatusValidador(int idFila, string cnpj) { NomeComponente = VFPName; NomeMetodo = "VerificarStatusValidador"; var envio = NovoEnvio(); var parametros = envio.Componente.Metodo.Parametros; parametros.AddParametro("idFila", idFila.ToString()); parametros.AddParametro("cnpj", cnpj); envio.Componente.Metodo.Construtor = new IntegradorConstrutor(); envio.Componente.Metodo.Construtor.Parametros.AddParametro("chaveAcessoValidador", Configuracoes.ChaveAcessoValidador); EnviarComando(envio); AguardarResposta(NumeroSessao.ToString()); return(IntegradorRetorno.Load(UltimaResposta)); }