Ir para conteúdo
  • Cadastre-se

Marcelo A. Rodrigues

Membros
  • Total de ítens

    58
  • Registro em

  • Última visita

Posts postados por Marcelo A. Rodrigues

  1. 16 horas atrás, DevSolucaoSistemas disse:

    Boa tarde Marcelo. Já está usando os endpoints criados em produção?

    Bom dia 
    Estou usando o pagseguro em produção sim.

    São necessários algumas etapas para conseguir homologar, como:
    Disponiblizar um endpoint publico com a consulta da chave publica temporaria gerada;
    Realizar os testes em homologação e depois solicitar a homologação enviando os arquivos de log gerados;

    • Curtir 1
  2. Boa tarde

    Implementei os novos endpoints conforme manual do pagseguro em anexo.

    SolicitarCredenciais -> solicita o client id e client secret;

    SolicitarDesafioCertificado -> solicita o texto de desafio criptografado;

    SolicitarCertificado -> após resolver o desafio, é possível solicitar o certificado (key e pem) por essa chamada;

    Ajuste da versão http.protocol = '1.1' necessário para quando controla manualmente o token;

     

    Atenciosamente

    Manual API Pix.pdf ACBrPIXPSPPagSeguro.pas

    • Curtir 1
    • Obrigado 1
  3. Olá, 

    Realizei os testes no ambiente de Homologação e Produção do PSP Sicredi
    Para solicitar a Devolução do Pix, foi necessário um ajuste no ResultCode do endpoint

    Antes era testado apenas o 201-Created, porém no Sicredi é retornado o 200-Ok

    function TACBrPixEndPointPix.SolicitarDevolucaoPix(const e2eid,
      idDevolucao: String): Boolean;
    ....
      fPSP.AcessarEndPoint(ChttpMethodPUT, EndPoint, ResultCode, RespostaHttp);
      Result := (ResultCode in [HTTP_CREATED,HTTP_OK]);
      if Result then
        fDevolucao.AsJSON := String(RespostaHttp)
      else
        fPSP.TratarRetornoComErro(ResultCode, RespostaHttp, Problema);

     

    Também inclui as configurações do Sicredi no exemplo do ACBr, porém estava gerando alguns erros para compilar.

    Deixei o fonte comentado do que dava erro nas rotinas do Pix vencimento.

    Caso queiram aproveitar, eu fiz só o básico para conseguir funcionar, segue em anexo.

    ACBrPIXCD.pas FrPrincipal.pas FrPrincipal.dfm

  4. Boa tarde,

    Itápolis migrou para o novo provedor da SmarAPD, segue os ajustes necessários:

    Classe: pnfsNFSeW_ABRASFv2.pas
    Método > TNFSeW_ABRASFv2.GerarXML_ABRASF_v2
    Acrescentado para o Provedor: proSmarAPDABRASF
    InfDeclaracaoPrestacaoServico com indentificador conforme anexo

        proSmarAPDABRASF:
            Gerador.wGrupo('InfDeclaracaoPrestacaoServico ' + FIdentificador + '="declaracao_' + NFSe.InfID.ID + '"');

     

    Conforme o site abaixo, ajustei o arquivos INI de Homologação e Produção
    http://tributacao.smarapd.com.br/abrasf/loginWeb.jsp?execobj=ABRASFAcessoWS&hostProducao=http://notafiscal.itapolis.sp.gov.br:8090/tbw/&hostHomologacao=&rpsSincrono=10&rpsAssincrono=30&titulo=Prefeitura+Municipal+de+Itápolis

    ** SmarAPDABRASF.ini **
    [URL_P]
    RecepcaoLoteRPS=%NomeURL_P%/tbw/services/nfseSOAP?wsdl

    [URL_H]
    RecepcaoLoteRPS=%NomeURL_H%/abrasf/services/nfseSOAP?wsdl

    ** Cidades.ini **
    [3522703]
    Nome=Itapolis
    UF=SP
    Provedor=SmarAPDABRASF
    NomeURL_H=https://tributacao.smarapd.com.br
    NomeURL_P=http://notafiscal.itapolis.sp.gov.br:8090

     

    Observação: O cancelamento só funcionou assinando o XML com CAPICOM, não entendi bem o motivo, pois sempre uso WinCrypt e LibXml2 nas demais assinaturas de XML. Testei apenas com certificado A1.

    Assinando com o WinCrypt e LibXml2 é retornado erro de assinatura, e acontece o mesmo validando a assinatura do arquivo pelo site:

    https://servicos.receita.fazenda.gov.br/servicos/assinadoc/ValidadorAssinaturas.app/valida.aspx

     

    Cidades.ini pnfsNFSeW_ABRASFv2.pas SmarAPDABRASF.ini

  5. 11 minutos atrás, Italo Jurisato Junior disse:

    Marcelo,

    Se eu tiver mais de uma seguradora envolvida?

    O numero da apólice, é um só por seguradora, mas o numero da averbação podemos ter "N".

    Veja como vai ser a nova versão do DAMDFE a partir de outubro/2019

    Nova versao DAMDFE.jpg

     

    Entendi Italo, realmente se possuir duas seguradoras não irá mostrar os dados da segunda.

    Para resolver esse problema de mais de uma Seguradora, teriamos que colocar os dados da Seguradora como um bloco que ocuparia toda a largura da folha, abaixo do "Vale Pedágio".

    Nessa nova versão que vai entrar QR Code, qual é a idéia, refazer a impressão já existente ou apenas acrescentar os novos campos? (ainda não li sobre as mudanças)

  6. 16 minutos atrás, Marcelo A. Rodrigues disse:

    Bom dia,

    Sobre essa alteração do "Numero da Averbação", tenho um cliente que está questionando por cortar o campo na impressão.

    Eu fiz um ajuste na impressão, não sei se ficou da melhor forma, caso queiram subir o ajuste ou dar uma outra ideia para não cortar o campo.

    Segue em anexo o ajuste e o print do manual com o tamanho do campo

    MDFe - Seguro.png

    ACBrMDFeDAMDFeRLRetrato.lfmUnavailable ACBrMDFeDAMDFeRLRetrato.pas 23 kB · 0 downloads

    Faltou o anexo do arquivo .dfm..

    ACBrMDFeDAMDFeRLRetrato.dfm

  7. Bom dia!

    No ambiente de Homologação para São Paulo, está gerando esse erro também quando não possui o campo INSS no XML

    Modifiquei o código para testar, conforme abaixo, e foi enviado normalmente:

      if (((CTe.ide.UFIni <> CTe.ide.UFFim) or (CTe.ide.UFEnv = 'RS') or (CTe.ide.UFEnv = 'SP')) and
          (CTe.ide.indIEToma = inNaoContribuinte)) and
         ((CTe.Imp.infTribFed.vPIS > 0) or (CTe.Imp.infTribFed.vCOFINS > 0) or
          (CTe.Imp.infTribFed.vIR > 0) or ((CTe.Imp.infTribFed.vINSS > 0) or (InformarINSS = 1)) or
          (CTe.Imp.infTribFed.vCSLL > 0)) then
      begin
        Gerador.wGrupo('infTribFed', '#125');
        Gerador.wCampo(tcDe2, '#', 'vPIS   ', 01, 15, 0, CTe.Imp.infTribFed.vPIS, DSC_VPIS);
        Gerador.wCampo(tcDe2, '#', 'vCOFINS', 01, 15, 0, CTe.Imp.infTribFed.vCOFINS, DSC_VCOFINS);
        Gerador.wCampo(tcDe2, '#', 'vIR    ', 01, 15, 0, CTe.Imp.infTribFed.vIR, DSC_VIR);
        Gerador.wCampo(tcDe2, '#', 'vINSS  ', 01, 15, InformarINSS, CTe.Imp.infTribFed.vINSS, DSC_VINSS);
        Gerador.wCampo(tcDe2, '#', 'vCSLL  ', 01, 15, 0, CTe.Imp.infTribFed.vCSLL, DSC_VCSLL);
        Gerador.wGrupo('/infTribFed');
      end;

    Mesmo passando zerado os campos PIS, COFINS, IR, INSS e CSLL envia normalmente no ambiente de Homologação

  8. Caso use o ACBrETQ, eu estava com o mesmo problema, até ser corrigido na atualização do dia 12/12/2017, revisão 14281.

     

    -- ACBrETQPpla --
    [*] Inclusão de um valor mínimo(220) para aAvançoEtq em "ComandosFinalizarEtiqueta".
        (por: Elias César)

  9. Bom dia,

    Eu pego os retornos do manifesto da seguinte forma:

    with ACBrMDFe.WebServices.EnvEvento do begin
    
    	EventoRetorno.retEvento.Items[0].RetInfEvento.cStat
    	EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo
    	EventoRetorno.retEvento.Items[0].RetInfEvento.nProt
    	EventoRetorno.RetEvento.Items[0].RetInfEvento.tpEvento
    	EventoRetorno.RetEvento.Items[0].RetInfEvento.chMDFe
    	EventoRetorno.RetEvento.Items[0].RetInfEvento.nSeqEvento
    
    end;
    

    att.

  10. Conforme a Graça postou acima, você deve apenas incluir o novo motorista ao MDF-e

    3 horas atrás, Gr@c@ disse:

    Inclusão de Motorista: solicitado sempre que houver troca, substituição ou inclusão de motorista;

     

  11. Bom dia, 

    É possível apenas incluir um novo motorista no manifesto que está em aberto:

            ACBrMDFe1.EventoMDFe.Evento.Clear;
            ACBrMDFe1.EventoMDFe.idLote := XNumeroLote;
    
            with ACBrMDFe1.EventoMDFe.Evento.Add do
            begin
                InfEvento.chMDFe     := xChaveAcesso;
                infEvento.CNPJ       := xCNPJ;
                infEvento.dhEvento   := Now;
                infEvento.tpEvento   := teInclusaoCondutor;
                infEvento.nSeqEvento := nSeqEvento;
                infEvento.detEvento.nProt := xProtocolo;
                infEvento.detEvento.xNome := xNomeMotoristaAIncluir;
                infEvento.detEvento.CPF   := xCPFMotorista;
            end;
    
        	// Enviar o evento inclusao de condutor
        	if ACBrMDFe1.EnviarEvento(xNumeroLote) then begin

     

    • Curtir 2
  12. Bom dia,

    No mês passado eu tive o mesmo problema que o Wesller, meu cliente precisava enviar o MDF-e com o proprietário do veículo sendo pessoa física.

     

    Só consegui transmitir o MDF-e com o ajuste sugerido pelo Wesller.

  13. Boa tarde

    A tag nAver é um campo dentro da lista aver:

                with seg.Add do begin                
                    respSeg := '';
                    CNPJCPF := '';                
                    xSeg    := '';
                    CNPJ    := '';
                    nApol   := '';
                    with aver.Add do begin
                        nAver  := '';
                    end;
                end;

     

  14. Boa tarde,

     

    Tenho a seguinte situação de MDF-e:

    VersaoDF = ve300
    MDFe.Ide.tpEmit = teTranspCargaPropria
    MDFe.Ide.modal = moRodoviario
    MDFe.Ide.tpTransp = ttTAC

    Quando informo o proprietário do veículo com um CNPJ diferente da empresa emitente do Manifesto, ele é autorizado com sucesso.

    Quando informo o proprietário do veículo com um CPF, sendo diferente da empresa emitente do Manifesto, ele não é autorizado sendo exibido o erro: "458-Rejeição: Tipo de Transportador não deve ser informado para Emitente de Carga Própria proprietário do veículo".

     

    Alguém sabe me dizer se para pessoa Física proprietário do veículo o campo "tpTransp" também não deverá ser informado?

  15. Bom dia Wagner.

     

    Pelo o que entendi, você quer recuperar as chaves de acesso dos MDFe que estão pendentes.

    Para retornar essas chaves de acesso você pode fazer algo nesse sentido:

     

    		if ACBrMDFe.WebServices.ConsultaMDFeNaoEnc( SomenteNumeros( xCNPJ ) ) then begin
    	
    			if ACBrMDFe.WebServices.ConsMDFeNaoEnc.cStat = 111 then begin
    
    				for nPos := 0 to ACBrMDFe.WebServices.ConsMDFeNaoEnc.InfMDFe.Count - 1 do begin
    
    						ACBrMDFe.WebServices.ConsMDFeNaoEnc.InfMDFe[nPos].chMDFe; //Retorna a chave de acesso
    						ACBrMDFe.WebServices.ConsMDFeNaoEnc.InfMDFe[nPos].nProt;  //Retorna o protocolo
    
    				end;
    
    			end;
    
    		end;

     

    att

    • Curtir 1
  16. Bom dia Fernando.

    Você pode cancelar o MDFe através do evento:      infEvento.tpEvento   := teCancelamento;

  17. Bom dia, 

     

    Sei que o tópico é antigo, porém passei pelo mesmo problema com o retorno de status 215 (Falha no schema XML).

    Eu utilizava na propriedade SSLLib o Capicom da seguinte forma

            ACBrMDFe1.Configuracoes.Geral.SSLLib := libCapicomDelphiSoap;


    Consegui resolver alterando essa propriedade para libCapicom antes de enviar o evento para retornar os manifestos não encerrados:

            ACBrMDFe1.Configuracoes.Geral.SSLLib := libCapicom;

     

    Caso alguém passe pelo mesmo erro, funcionou para mim dessa forma.

    att.

    • Curtir 4
  18. 14 horas atrás, marcelo augusto disse:

    Boa tarde

     

    Estou realizando a homologação do CT-e na versão 3.0 e encontrei um erro ao enviar eventos (Carta de correção, Cancelamento) referente a formatação da data do evento;

     

    Segue a correção:

    Classe: pcteEnvEventoCTe
    Método: TEventoCTe.GerarXML
     

    
    if Versao = '3.00' then
    	Gerador.wCampo(tcStr, 'EP09', 'dhEvento  ', 01, 27, 1, DateTimeTodh(Evento.Items[0].InfEvento.dhEvento) + GetUTC(CodigoParaUF(Evento.Items[0].InfEvento.cOrgao), Evento.Items[0].InfEvento.dhEvento), DSC_DEMI)
    else
    	Gerador.wCampo(tcStr, 'EP09', 'dhEvento  ', 01, 27, 1, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss', Evento.Items[0].InfEvento.dhEvento));

     

    att.

    Bom dia,

    Segue o arquivo

    att

    pcteEnvEventoCTe.pas

  19. Boa tarde

     

    Estou realizando a homologação do CT-e na versão 3.0 e encontrei um erro ao enviar eventos (Carta de correção, Cancelamento) referente a formatação da data do evento;

     

    Segue a correção:

    Classe: pcteEnvEventoCTe
    Método: TEventoCTe.GerarXML
     

    if Versao = '3.00' then
    	Gerador.wCampo(tcStr, 'EP09', 'dhEvento  ', 01, 27, 1, DateTimeTodh(Evento.Items[0].InfEvento.dhEvento) + GetUTC(CodigoParaUF(Evento.Items[0].InfEvento.cOrgao), Evento.Items[0].InfEvento.dhEvento), DSC_DEMI)
    else
    	Gerador.wCampo(tcStr, 'EP09', 'dhEvento  ', 01, 27, 1, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss', Evento.Items[0].InfEvento.dhEvento));

     

    att.

  20. 1 minuto atrás, Ayrton disse:

    Pelo visto ainta esta complicado nossa situação perante a SEFAZ, mas queria saber de vcs outra situação.

    Estou com alguns clientes que tiveram o SAT ativado antes desse problema com a SEFAZ, mas começaram a emitir CFe por esses dias, há uns 2 ou 3 dias, mas estão encontrando problemas, inclusive o LED que indica que há cupons pendente de transmissão esta ficando aceso. É possivel estar relacionado com esses problemas atuais da SEFAZ? Alguem esta tendo esse tipo de problema ou algo parecido?

    Olá Ayrton, eu estou com o mesmo problema em vários clientes.

    É feito a venda, porém eles ficam pendentes de Transmissão, verifiquei o Log do Equipamento e esta dessa forma: 

    9622 23/02/2016 08:28:05 nvl 2 info (CFeRecepcao) acessado o webservice
    9623 23/02/2016 08:28:21 nvl 0 erro (CFeRecepcao) falha de comunicacao com a SEFAZ
    9624 23/02/2016 08:28:21 nvl 2 info (dispatcher) aguarda proxima transmissao (tempo:010000)
    9625 23/02/2016 08:28:35 nvl 0 erro (CFeComandos) falha de comunicacao com a SEFAZ
    9626 23/02/2016 08:28:35 nvl 2 info (comando) aguarda proxima verificacao de comandos na SEFAZ (tempo:010000)

    Alguém mais está com esse problema? a solução será aguardar?

    O problema é que temos 10 dias para fazer a transmissão...

    Sat_ERRO.txt

  21. Boa tarde,

     

    Eu estava a 3 dias procurando alguma solução sem sucesso.

    Hoje a tarde consegui descobrir que o cabo estava com problema na pinagem do terra (segundo o técnico que fez o cabo);

    Estava recebendo esse erro de -9 e depois que o técnico corrigiu o cabo deu certo.

    Usei a configuração: 4800,8,N,1

     

    att

    • Curtir 2
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.