Ir para conteúdo
  • Cadastre-se

dev botao

Implementação Nfse - São Paulo


jonatan.souza
  • Este tópico foi criado há 3009 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia,

 sei que o componente hoje não gera a NFSe de São Paulo devido a não seguir o padrão Abrasf, mais estou disposto a fazer a implementação do código no componente, mais antes de iniciar gostaria de saber se dar para fazer pelo Delphi 7, pois ouvi alguns relatos informando que o modo de assinatura é diferente, e que o Delphi não daria para fazer, isto procede ?

 

 

Ou se alguém tiver algum material para me ajudar eu agradeço.

 

 

Obrigado a todos.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Até é melhor usar o delphi 7, pois depois é mais tranquilo para corrigir possíveis problemas que venham a ocorrer devido as versões

tome como exemplo o ACBrNFeMonitor ele é escrito em delphi 7

mas o mais importante é deixe compatível com os fontes que já tem e use a mesma estrutura

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Até é melhor usar o delphi 7, pois depois é mais tranquilo para corrigir possíveis problemas que venham a ocorrer devido as versões

tome como exemplo o ACBrNFeMonitor ele é escrito em delphi 7

mas o mais importante é deixe compatível com os fontes que já tem e use a mesma estrutura

 

Estou implementando na mesma estrutura, já tinha feito o de Nova Lima-MG, agora estou fazendo de São Paulo.

 

Mais você sabe me dizer se a assinatura digital de SP é muito diferente das outras ?

 

Obrigado

Editado por jonathan-augusto
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

 Boa tarde Amigo,

 como na conversa anterior estou implementando a NFSe Paulistana no Acbr, já estou realizando o envio de Lote e tratando os erros retornados, tudo dentro do padrão Acbr.

 

 Como todos sabem existe uma TAG <Assinatura> na NFSe Paulistana que o Delphi não assina correto, ou seja muitos programadores usaram DLL feita em C#, visitei diversos fóruns solicitando a DLL para fazer a tal assinatura, mais nunca ninguém me ajudou.

 

 Então tive que aprender C# na raça, e então desenvolvi a tão sonhada DLL que faz a assinatura.

 

 Quando toda a rotina estiver implementada foi enviar os fontes para os moderadores verificar e subir.

 

 A DLL com o tbl esta em anexo, vou mostrar também como realizar a assinatura :

 

Dentro da Unit AcbrNFSeUtil adicione a função :

 

class function NotaUtil.AssinaturaProdam( Assinatura, NumSerial : String ) : String;
var
 Store  : IStore3;
 Certs  : ICertificates2;
 Certs2 : ICertificates2;
 Cert   : ICertificate2;
 AssinarRPSSP : TAssinaturaRPS;
begin
 
 Result := '';
 
 Store := CoStore.Create;
 Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
 
 Certs  := Store.Certificates as ICertificates2;
 Certs2 := Certs.Select('Certificado(s) Digital(is) disponível(is)', 'Selecione o Certificado Digital para uso no aplicativo', false);
 
 if not(Certs2.Count = 0)
  then begin
   Cert         := IInterface(Certs2.Item[1]) as ICertificate2;
   AssinarRPSSP := TAssinaturaRPS.Create(nil);
   Assinatura   :=  AssinarRPSSP.AssinarRPS(Assinatura,UpperCase(Cert.SerialNumber));
   Assinatura   := StringReplace( Assinatura, #10, '', [rfReplaceAll] );
   Assinatura   := StringReplace( Assinatura, #13, '', [rfReplaceAll] );
   Result       := Assinatura;
   //FDataVenc    := Cert.ValidToDate;
   //FInformacao  := Cert.SubjectName
  end;
end;
 
 
Na pasta do executável você coloca a DLL e registra com o regasm.exe : pelo prompt do DOS (como administrador) execute :  "RegAsm AssinaturaRPS_SP.DLL"
 
Para importar o arquivo AssinaturaRPS_SP.tbl faça o seguinte :
 
No Delphi vai em : Project -> Import Type Library -> Add ( AssinaturaRPS_SP.tbl )
 
Não se esqueça de adicionar a unit "AssinaturaRPS_SP_TLB" em USES.
 
 
Abraços.
 
 

AssinaturaRPS_Sp.rar

Editado por jonathan-augusto
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá j. augusto.

Eu também estou implantando a NFS-e em São Paulo e por enquanto criei o arquivo txt e não sei como enviá-lo diretamente ao site da NFS-e Paulistana.

Você pode me dizer como configurar a tab webservice do componente ? Isso é possível ou terei que fazê-lo manualmente através do site da prefeitura ?

Link para o comentário
Compartilhar em outros sites

Olá j. augusto.

Eu também estou implantando a NFS-e em São Paulo e por enquanto criei o arquivo txt e não sei como enviá-lo diretamente ao site da NFS-e Paulistana.

Você pode me dizer como configurar a tab webservice do componente ? Isso é possível ou terei que fazê-lo manualmente através do site da prefeitura ?

 

Pelo que sei o arquivo TXT é importado direto pelo site da prefeitura, agora o XML é enviado via web service ( o que eu estou implementando ), como as outras prefeituras.

Link para o comentário
Compartilhar em outros sites

Ótimo, estou trabalhando nisso também, mas na versão OpenSSL,  vi que você criou os métodos para CapCom, caso queira ajuda com os ajustes, posso partir do que você já fez e ajustar o código para funcionar no servidor.

 

Vamos sim, deixa eu só receber o certificado de São Paulo só para acertar últimos detalhes aí coloco o fontes disponíveis, pois estou desenvolvendo somente o envio de lote, cancelamento e consulta, assim que eu documentar tudo certinho eu faço o upload dos fontes. 

 

O meu e-mail é  [email protected]  se caso querer manter um melhor contato.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • 4 semanas depois ...

Boa noite amigos,

disponibilizei no 4shared os fonte contendo o inicio da implementação de SP, lembrando que esta somente Assinando a TAG assinatura, enviando e pegando retorno, não tive tempo de terminar os outros eventos como cancelamento e consulta.

 

Link : http://www.4shared.com/rar/YLBvwwlKce/ 

Editado por jonathan-augusto
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • 2 semanas depois ...
  • 4 semanas depois ...

Jonatha,

 

Ao tentar registrar a dll tenho resultado negativo, pode me auxiliar?

 

RegAsm: error RA0000 : Não foi possível carregar arquivo ou assembly 'file://caminhoArquivo/RegAsm.exe' ou uma de suas dependências. Operação sem suporte. <Exceção de HRESULT: 0x80131515).

 

 

 

 

 

 Boa tarde Amigo,

 como na conversa anterior estou implementando a NFSe Paulistana no Acbr, já estou realizando o envio de Lote e tratando os erros retornados, tudo dentro do padrão Acbr.

 

 Como todos sabem existe uma TAG <Assinatura> na NFSe Paulistana que o Delphi não assina correto, ou seja muitos programadores usaram DLL feita em C#, visitei diversos fóruns solicitando a DLL para fazer a tal assinatura, mais nunca ninguém me ajudou.

 

 Então tive que aprender C# na raça, e então desenvolvi a tão sonhada DLL que faz a assinatura.

 

 Quando toda a rotina estiver implementada foi enviar os fontes para os moderadores verificar e subir.

 

 A DLL com o tbl esta em anexo, vou mostrar também como realizar a assinatura :

 

Dentro da Unit AcbrNFSeUtil adicione a função :

 

class function NotaUtil.AssinaturaProdam( Assinatura, NumSerial : String ) : String;
var
 Store  : IStore3;
 Certs  : ICertificates2;
 Certs2 : ICertificates2;
 Cert   : ICertificate2;
 AssinarRPSSP : TAssinaturaRPS;
begin
 
 Result := '';
 
 Store := CoStore.Create;
 Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
 
 Certs  := Store.Certificates as ICertificates2;
 Certs2 := Certs.Select('Certificado(s) Digital(is) disponível(is)', 'Selecione o Certificado Digital para uso no aplicativo', false);
 
 if not(Certs2.Count = 0)
  then begin
   Cert         := IInterface(Certs2.Item[1]) as ICertificate2;
   AssinarRPSSP := TAssinaturaRPS.Create(nil);
   Assinatura   :=  AssinarRPSSP.AssinarRPS(Assinatura,UpperCase(Cert.SerialNumber));
   Assinatura   := StringReplace( Assinatura, #10, '', [rfReplaceAll] );
   Assinatura   := StringReplace( Assinatura, #13, '', [rfReplaceAll] );
   Result       := Assinatura;
   //FDataVenc    := Cert.ValidToDate;
   //FInformacao  := Cert.SubjectName
  end;
end;
 
 
Na pasta do executável você coloca a DLL e registra com o regasm.exe : pelo prompt do DOS (como administrador) execute :  "RegAsm AssinaturaRPS_SP.DLL"
 
Para importar o arquivo AssinaturaRPS_SP.tbl faça o seguinte :
 
No Delphi vai em : Project -> Import Type Library -> Add ( AssinaturaRPS_SP.tbl )
 
Não se esqueça de adicionar a unit "AssinaturaRPS_SP_TLB" em USES.
 
 
Abraços.

 

--

Desenvolvimento 

Americasoft Informática

11 3019-3819
[email protected]

Link para o comentário
Compartilhar em outros sites

Quem ja esta enviando rps para a PMSP como esta formatando o componente THTTPReqResp. Estou recebendo os erros em algumas tentativas que fiz:

 

Classe do erro: ESOAPHTTPException

Erro: Unsupported Media Type (415) - 'https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx?wsdl'

Ou

Classe do erro: ESOAPHTTPException

Erro: Not Found (404) - 'http://www.prefeitura.sp.gov.br/nfe/ws'

 

O que informa nos itens citados em vermelho ?

 

 

Stream:= TMemoryStream.Create;

ReqResp:= THTTPReqResp.Create(nil);

ReqResp.OnBeforePost:= SELF.PegarCertValido;

ReqResp.URL:= aqui <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ReqResp.UseUTF8InHeader:= True;

ReqResp.SoapAction:= aqui <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ReqResp.Execute( KCORPOMSG, Stream );

   StrStream:= TStringStream.Create( cntSTRINGNIL );

   StrStream.CopyFrom( Stream, 0 );

   RESULT:= self.ParseTextX( StrStream.DataString, true );

 

Grato,

 

Fabio Ferreira

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

Jonatha,

 

Ao tentar registrar a dll tenho resultado negativo, pode me auxiliar?

 

RegAsm: error RA0000 : Não foi possível carregar arquivo ou assembly 'file://caminhoArquivo/RegAsm.exe' ou uma de suas dependências. Operação sem suporte. <Exceção de HRESULT: 0x80131515).

 

Direito do mouse no RegAsm.exe + Propriedades e clique em Desbloquear. Faça o mesmo na dll.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • 3 meses depois ...

<RPS xmlns=""><Assinatura>kVA7kWi3vNpwh/iAOsQG2GIU4WtU8zbwAivWKT6EWRUZdJXtwZvW7VKRS3c60HxwHQO/8ODFecIB5W3nB8RWpSJIfnxYngRnoUTwv8scbehP6LBvCaZNLz+R49YrGXO0p/+cInHp+ElKXPEQlR3MKMjQbR7fO0Oc6d52BSyICuNbnKQxhG5C9qofBxjlLYGkBYowXjjuYuYjC+RLaeZJU5vIkwiLQZd04bs7uqwc18aqoc0stvs9QJImx4+ycqqIqjC0TiTrFw/Y5B4Y6ga9dUOw4GlUDIXwL8bjn+wHrcPjkKqrSNLGzaKvRRPt+Bguc9Df+IfUCz71P22AW/gaXw==</Assinatura><ChaveRPS><InscricaoPrestador>198571</InscricaoPrestador><SerieRPS>UNICA</SerieRPS><NumeroRPS>1</NumeroRPS></ChaveRPS><TipoRPS>RPS</TipoRPS><DataEmissao>2014-09-18</DataEmissao><StatusRPS>N</StatusRPS><TributacaoRPS>T</TributacaoRPS><ValorServicos>1.00</ValorServicos><ValorDeducoes>0.00</ValorDeducoes><ValorPIS>0.00</ValorPIS><ValorCOFINS>0.00</ValorCOFINS><ValorINSS>0.00</ValorINSS><ValorIR>0.00</ValorIR><ValorCSLL>0.00</ValorCSLL><CodigoServico>1.01</CodigoServico><AliquotaServicos>0.0200</AliquotaServicos><ISSRetido>false</ISSRetido><CPFCNPJTomador><CNPJ>10425660000178</CNPJ></CPFCNPJTomador><InscricaoMunicipalTomador>2335490014</InscricaoMunicipalTomador><RazaoSocialTomador>IDEAL LOG ASSESSORIA EM COMERCIO EXTERIOR LTDA</RazaoSocialTomador><EnderecoTomador><Logradouro>RUA TESTE</Logradouro><NumeroEndereco>100</NumeroEndereco><ComplementoEndereco>APTO 11</ComplementoEndereco><Bairro>CENTRO</Bairro><Cidade>3550308</Cidade><UF>SP</UF></EnderecoTomador><EmailTomador>[email protected]</EmailTomador><Discriminacao>discriminacao</Discriminacao></RPS>

 

isso ta certo?.. não ta faltando alguma tag?

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

É quase instantâneo, parecido com o tempo da NFe.

De todos os provedores que já trabalhei é o mais rápido.

Editado por Oneide Luiz Schneider
 
 
 
Att. 
Oneide Luiz Schneider
Software Developer
Location: Chapecó / SC - Brazil
Link para o comentário
Compartilhar em outros sites

Tem vários posts aqui sobre esse assunto, em um deles postei os fontes onde fiz o merge com o ACBR.

Funciona muito bem, mas sempre é preciso fazer merge, pois o ACBR não vai adicionar enquanto tiver fontes de terceiros, como por exemplo a DLL usada para fazer a assinatura.

 
 
 
Att. 
Oneide Luiz Schneider
Software Developer
Location: Chapecó / SC - Brazil
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3009 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...