-
Total de ítens
142 -
Registro em
-
Última visita
Tudo que netstart postou
-
Boa tarde, acabei de fazer 4 cupons um em seguida do outro e funcionou normal, verifique se realmente está usando o modelo satDinamico_stdcall, depois que o Daniel implementou essa rotina ficou certo, o modelo D-Sat funciona somente com satDinamico_stdcall.
-
O meu problema é justamente o certificado A3, ele não exporta a chave privada, não gera o .pfx
-
Estou tentando gerar usando o CAPICOM + Delphi para criar um exe gerar a assinatura porém não estou tendo sucesso, assinatura gerada fica bem maior que o 344 caractres, me parece que a capicom usa SHA1 e como tem que usar SHA256 talvez não vai dar certo usar a CAPICOM,estou usando o seguinte codigo : function TF_Assinatura.Assinar(vCNPJs: String): Boolean; var Store : IStore3; CertsLista, CertsSelecionado : ICertificates2; CertDados : ICertificate; lSigner : TSigner; lSignedData : TSignedData; vAssinatura:string; Crypt: EncryptedData; begin Result := False; Store := CoStore.Create; Store.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); CertsLista := Store.Certificates as ICertificates2; CertsSelecionado := CertsLista.Select('Certificado(s) Digital(is) disponível(is)', 'Selecione o Certificado Digital para uso no aplicativo', false); if not(CertsSelecionado.Count = 0) then begin CertDados := IInterface(CertsSelecionado.Item[1]) as ICertificate2; lSigner := TSigner.Create(self); lSigner.Certificate := CertDados; lSignedData := TSignedData.Create(self); lSignedData.Content := vCNPJs; edtAssinatura.Text := lSignedData.Sign(lSigner.DefaultInterface, false, CAPICOM_ENCODE_BASE64); Result := True; lSignedData.Free; lSigner.Free; end; end; Caso eu consiga gerar posto aqui no post para disponibilizar...
-
Eu já deletei rsrs, mas basicamente era a declaração das funções usando StdCall e ao inves de chamar o EnviarDadosVenda do ACBrSAT eu chamava o da minha unit declarada no modo StdCall, mas o daniel já inclui uma nova unit com essa funcionalidade, basta mudar o modelo para satDinamico_stdcall que ja funciona tudo certinho com o D-SAT.
-
Daniel qual o CNPJ da Software house que você usou no novo emulador, tentei 11111111111111, mas retorna CNPJ da SWH invalido, até no proprio aplicativo da sefaz.
-
Daniel Funcionou certinho usando o novo modelo, fiz testes venda, cancelamento,consultarSAT, ConsultarStatusOperacional e Avisos, os outros ainda deu tempo de testar, mas com o novo modelo deu certo, assim que realizar mais testes posto aqui com os resultados, a unica coisa que tive que mudar para compilar no DelphiXe2 foi algumas declarações no ACBrSATExtratoFortesFr como por exemplo Graphics para Vcl.Graphics.
-
Bom dia Daniel, eu tenho o link do canal que eles criaram para atendimento https://d-sat.4bee.com.br/Account/LogOn?ReturnUrl=%2fHome%2fIndex, também tenho o e-mail do marlus.teixeira@dimep.com.br que foi quem gerenciou todo o projeto, como não consegui localizar o erro, estou usando o acbrSAT para criar o xml e fazer a impressão que também fiz algumas alterações por conta de margens e logo marca, mas o envio fiz uma unit separada, estou realizando venda,cancelando, imprimindo com o equipamento, tive que dar uma parada no projeto mas assim que voltar a mexer vou tentar achar o problema de travamento que ocorre usando o acbrSAT por completo. Como o pessoal da DIMEP está investindo pesado nesse projeto, acredito que não seria díficil conseguir uma doação do KIT de Desenvolvimento.
-
Bom dia pessoal,ainda estou na luta, não consigo localizar achar onde está o erro, já mexi em todo a ACBrSAT, mas após emitir o cupom e ter o retorno ok, a função enviar dados não volta para a sua chamada Result := FinalizaComando( fsSATClass.EnviarDadosVenda( Trim(dadosVenda) ) ); , mesmo com a emissão ok, tem algum free faltando ou create que não consigo localizar, vou postar o meu debug onde da para ver a resposta do SAT.
-
Boa tarde, estamos usando o delphi, o arquivo xml esta tudo ok , no software de ativação tem como fazer o upload de um xml de venda e enviar ao equipamento simulando uma venda, passei o arquivo gerado e foi normal, não foi o TestefimAFim, estamos conseguindo usar apenas a função ConsultarSAT que retorna SAT em Operação, eliminando assim erro ao carregar a dll, tem algum erro na passagem dos parametros que ainda não identificamos, mas vou reportar aqui qualquer avanço que tivermos, obrigado pela atenção. function TACBrSATDinamico_cdecl.EnviarDadosVenda(dadosVenda : AnsiString) : String ; Var Resp : PAnsiChar; begin resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao), PAnsiChar(dadosVenda) ) ; Result := String( Resp ); end ; Tentamos assim : F_DataModule.ACBrSAT.EnviarDadosVenda(DadosVenda); //Dados da venda é o xml que está de acordo Tentamos tambem como fazemos com as dll de ecf: Function EnviarDadosVenda(numeroSessao : LongInt;codigoDeAtivacao, dadosVenda:AnsiString ):String; StdCall; External 'SAT.dll' ; U_SAT_DIMEP.EnviarDadosVenda(123456,'123456789', PAnsiChar(vDados)); Temos sempre o mesmo retorno de violação de acesso.
-
Só relatando, o xml está ok, no próprio software de ativação deles tem como subir um xml e enviar como se fosse uma venda assim fazendo a validação, passou certinho, o problema esta na forma de consumir a dll mesmo, vou continuar os testes.
-
Mas usando o ACBRSat tambem ocorre a mesma coisa, mas só com o equipamento antes eu estava usando o emulador da sefaz e estava dando tudo certo, mas vamos a luta vou descobrir...
-
Eu já comparado tb, mas como eles homologaram estou meu na duvida, estou com vários arquivos de exemplo que me enviaram e todos estão como no exemplo, mandei um email para eles validarem, vamos ver a resposta, não sei se seria o motivo do erro de vialação de acesso que estou tendo de retorno, estou tentando consumir a dll sem usar o acbr e tambem tenho o mesmo retorno: Function EnviarDadosVenda(numeroSessao : LongInt;codigoDeAtivacao, dadosVenda:String):String; StdCall; External 'SAT.dll' ; vRetorno := EnviarDadosVenda(123456,'123456789',vDados);
-
Boa tarde pessoal, estivemos presente no evento da DIMEP realizado no dia 04/09, eles fizeram um sorteio de 2 kits para desenvolvedor fomos sorteados e ganhamos um Kit, estou realizando os testes com o equipamento e estou encontrando alguns probleminhas: 1 - Como estamos passando somente o path da dll tive que renomear a dll do fabricante "C:\Program Files (x86)\ D_SAT\dllsat.dll" para SAT.dll, acredito que cada fabricante vai usar um nome. 2 - Comentei a linha FunctionDetectLibSAT( 'DesligarSAT', @xSAT_DesligarSAT), esse comando não existe na dll; 3 - Comparando o xml gerado pelo acbrSAT e o exemplo que eles me passaram não bate na tag <total/>, vou anexar o 2 arquivos para comparar, acredito ser esse o motivo do retorno de violação de acesso ao enviar os dados da venda, vou continuar debungando para localizar o problema. exemplo.xml teste.xml
-
Essa semana tivemos muitos casos na hora de transmitir NFes usando os Certificados A3, sempre retornando erros de Forbiden 403 ou 507, ou que não conseguiu acessar via SoapAction, ai sempre restauramos as configurações avançadas das Opções de Internet, desmarcamos o as opções de revogação de certificado, retiramos o cartão e inserimos novamente, retiramos a leitora e inserimos novamente e em ultimo caso reiniciar a maquina para voltar a enviar as notas, a pergunta seria o que pode estar causando esses conflitos, isso só acontece no certificado A3 em SO distintos, antes era bem raros esses problemas, alguém esta tendo ou teve problemas com frequência desse tipo?
-
Estava tentado alimentar o componente com os registros 0210 assim: IBQRegistros0210.First; while not(IBQRegistros0210.Eof) do begin with ACBrSPEDFiscal1.Bloco_0.Registro0210New do // aqui retorna erro de violação de acesso begin COD_ITEM_COMP := IBQRegistros0210.FieldByName('COD_ITEM_COMP').AsString; QTD_COMP := IBQRegistros0210.FieldByName('QTD_COMP').AsFloat; PERDA := IBQRegistros0210.FieldByName('PERDA').AsFloat; end; IBQRegistros0210.Next; end; Como esta dando erro, fui debugando percebi que a linha de criação estava faltando como nos outros registro: unit ACBrEFDBloco_0; constructor TRegistro0200.Create(AOwner: TRegistro0001); begin FRegistro0205 := TRegistro0205List.Create; FRegistro0206 := TRegistro0206List.Create; FRegistro0210 := TRegistro0210List.Create; // linha inserida FRegistro0220 := TRegistro0220List.Create; end; destructor TRegistro0200.Destroy; begin FRegistro0205.Free; FRegistro0206.Free; FRegistro0210.Free; // linha inserida FRegistro0220.Free; inherited; end; Outras alterações fiz fazendo busca no registro 0220 e verificando se existia algum parecido 0210 onde não tinha coloquei como na unit ACBrSpedFiscal: : //Inserido if Bloco_0.Registro0210Count > 0 then begin with New do begin REG_BLC := '0210'; QTD_REG_BLC := Bloco_0.Registro0210Count; end; end; // Fim
-
Bom dia pessoal, estou testando a geração dos blocos que serão necessários para o bloco K, e quando alimentei o componente especificamente no registro 0210, deu alguns erros que acredito ter corrigido, vou anexar as units alteradas para analise, coloquei em comentário a flag para geração apenas 2015 somente para teste. ACBrEFDBloco_0.pas ACBrEFDBloco_0_Class.pas ACBrSpedFiscal.pas
-
Localizei o meu erro, esta declarado na minha Uses a pcnconversao, fazendo assim gerar o conflito, removi e deu certo, mas faz um bom tempo que utilizo dessa forma...
-
Acabei de atualizar, até apaguei a classe ACBrEFDBloco_C_Class e mesmo assim a minha classe esta : if DT_INI >= EncodeDate(2012,07,01) then begin case IND_PGTO of tpVista: strIND_PGTO := '0'; tpPrazo: strIND_PGTO := '1'; tpOutros: strIND_PGTO := '2'; tpNenhum: strIND_PGTO := ''; end end else begin case IND_PGTO of tpVista: strIND_PGTO := '0'; tpPrazo: strIND_PGTO := '1'; tpSemPagamento: strIND_PGTO := '9'; tpNenhum: strIND_PGTO := ''; end; end; Se eu tento colocar assim : IND_PGTO := tpOutros; tenho o retorno : [Error] U_SpedFiscal.pas(431): Incompatible types: 'TACBrIndPgto' and 'TpcteProp', alquem esta tendo esse tipo de problema ?
-
Novo Pacote De Impressão Para Acbrsat, Usando Fortesreport
netstart replied to Daniel Simoes's tópico in ACBrSAT
Daniel após atualizar, estou com problemas ao recompilar o pacote SAT : [Error] ACBrSATExtratoESCPOS.pas(283): Undeclared identifier: 'Msg_ICMS_123_2006' Procurei a declaração e realmente não encontrei, e também tive problema no Xe2 na Uses tive que mudar Graphics para Vcl.Graphics. -
Testei em Ambos..., só lembrando que com alterando direto funciona...
-
Na versão nova compilando normalmente, apenas tenho problema com String x AnsiString mesmo, que retorna o tal do codigo de ativação inválido, quando me referi ao não compilar foi quando voltei minhas units alteradas que ja estava funcionando,mas não compilava pq tb houve mudanças nas declarações na ACBrSATClass.pas, voltando tb a mesma pela anterior compila normalmente. O meu problema real que acredito ser o problema de todos que estão testando na IDE Xe, é : ACBrSAT.Inicializado -- 16:16:28:081 - numeroSessao: 543956 - Comando: ConsultarStatusOperacional 16:16:28:216 - numeroSessao: 543956 - Resposta:543956|10001|Código de ativação inválido.|| Que anteriormente em contornava mexendo na ACBrSATDinamico_cdecl.pas e ACBrSAT.pas, mas como vi no post acima que rodrigo teve exito na nova versão resolvi atualizar e testar, aqui ja fiz de tudo, e não funciona...
-
Ainda não obtive sucesso com a nova atualização do delphi Xe2 , já removi totalmente o emulador da sefaz , apaguei a pasta e dll, reinstalei o ACBrSat e ainda sempre tenho o retorno de codigo de ativação inválido, antes com as as alterações direto ACBrSATDinamico_cdecl.pas, eu estava obtendo exito, agora com alteração tb na ACBrSATClass não consigo compilar, vou ter que usar a versão enterior ainda, todos estão tendo sucesso na IDE Xe ?
-
Correções (Banco Do Brasil, Banco Do Nordeste E Bradesco)
netstart replied to joaolenosi's tópico in ACBrBoleto
Juliomar também precisei fazer algumas alterações na na AcbrBoleto.pas e ACBrBancoBrasil.pas para corrigir um problema referente a cobrança de Multa com valor fixo e não apenas em percentual, estou anexando as units para análise, tentei seguir o padrão que estava no componente espero que esteja de acordo, desde já agradeço atenção... ACBrBancoBrasil.pas ACBrBoleto.pas -
Daniel desde já agredeço a atenção, o meu evento está igual, o trecho esta no meu fonte já , mas o do DEMO está idéntico : procedure TF_DataModule.ACBrSATGetcodigoDeAtivacao(var Chave: string); begin Chave := QR_Ecf_Configuracao.FieldByName('sat_codigo_ativacao').AsString; end; Como agora o emulador da SEFAZ está funcional estou realizando todas as implementações e testes pendentes que eu tinha, vou deixar essa correção por ultimo já que alterando as funções diretamente na classe está dando certo (estou emitindo com exito usando ACBrSAT + Delphi Xe2 ), ai depois vou ficar somente com essa inconsistência para corrigir.
-
Daniel, estou testando no Delphi Xe2 no emulador v2.7.7 como o citado acima (Chave := AnsiString( edtCodigoAtivacao.Text ) porém sempre recebo o retorno de codigo de ativação inválido, ai eu mudo diretamente na função: Resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(AnsiString(codigoDeAtivacao)), PAnsiChar(dadosVenda) ) ; ai funciona, tem alguma outra alternativa para contornar esse problema?