PROJETO S@T-FISCAL

EDWANDERSON 05/09/2016 23:07:20
#466582
Citação:

:
cada empresa fabricante faz uma chamada diferente , por exemplo em meu sistema, TANCA chama de um jeito, Elgin de outro, e por ai vai, o problema é o tal PINVOKE !!!!!
Mas eu chamo todos esses da forma e sem problemas.
Uma classe para cada fabricante, assim:
Imports System.Collections.Generic
Imports System.Runtime.InteropServices
Imports System.Text
Namespace Dimep
Public Class Dimep_Class
Public Const Pasta_Dimep = [Ô]SATDIMEPdllsat.dll[Ô]
<DllImport(Pasta_Dimep)> _
Public Shared Function ConfigurarInterfaceDeRede(ByVal nSessionRandom As Int32, ByVal codigoDeAtivacao As String, ByVal dadosConfiguracao As String) As IntPtr

End Function
End Class
End Namespace




Ola!

Nilson, estou iniciando desenvolvimento com o SAT Dimep, voçê teria algum exemplo em VB.NET para compartilhar?

Agradeço se puder compartilhar...

meu e-mail :andersonlinker@gmail.com
NILSONTRES 06/09/2016 01:01:43
#466583
Citação:

Nilson, estou iniciando desenvolvimento com o SAT Dimep, voçê teria algum exemplo em VB.NET para compartilhar?


O Tempo é o maior obstaculo, Projeto SAT é bem complexo, estou postando aqui um pequeno exemplo de como se comunicar com o ele, enviando e recebendo
o retorno , esse retorno vem em forma de string e separado por Pipes.
Tomando base por min, depois que você pega isso a coisa deslancha.
Deve servir para mais alguém.
Detalhe, essa classe serve para todos os fabricantes, eu faço uma copia dela a cada novo fabricante(alterando apenas o nome, é claro), e chamo a correspondente após identificar o SAT do cliente.
EDWANDERSON 06/09/2016 09:33:25
#466587
Citação:

:
Nilson, estou iniciando desenvolvimento com o SAT Dimep, voçê teria algum exemplo em VB.NET para compartilhar?
O Tempo é o maior obstaculo, Projeto SAT é bem complexo, estou postando aqui um pequeno exemplo de como se comunicar com o ele, enviando e recebendo
o retorno , esse retorno vem em forma de string e separado por Pipes.
Tomando base por min, depois que você pega isso a coisa deslancha.
Deve servir para mais alguém.
Detalhe, essa classe serve para todos os fabricantes, eu faço uma copia dela a cada novo fabricante(alterando apenas o nome, é claro), e chamo a correspondente após identificar o SAT do cliente.



Bom dia!

Nilson, muito agradecido, o matéria é bem vindo, vou estudar o código, se tiver alguma duvida dou retorno...

Obrigado...
GEORGENES 08/09/2016 19:06:32
#466647
Citação:

:
cada empresa fabricante faz uma chamada diferente , por exemplo em meu sistema, TANCA chama de um jeito, Elgin de outro, e por ai vai, o problema é o tal PINVOKE !!!!!
Mas eu chamo todos esses da forma e sem problemas.
Uma classe para cada fabricante, assim:
Imports System.Collections.Generic
Imports System.Runtime.InteropServices
Imports System.Text
Namespace Dimep
Public Class Dimep_Class
Public Const Pasta_Dimep = [Ô]SATDIMEPdllsat.dll[Ô]
<DllImport(Pasta_Dimep)> _
Public Shared Function ConfigurarInterfaceDeRede(ByVal nSessionRandom As Int32, ByVal codigoDeAtivacao As String, ByVal dadosConfiguracao As String) As IntPtr

End Function
End Class
End Namespace




NILSONTRES , eu fiz assim e deu certo o funcionamento, o PROBLEMA é que dá um erro de validação XSD que não consigo descobrir o que é
envio o mesmo xml por outros modelos de sat, TANCA, ELGIN funciona, mas no Gertec não
Detalhe na propriedade do projeto esta assim na compilação:
Target CPU : x86
.NET Framework 4

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Runtime.InteropServices

Public Class SAT_GERTEC
Const strSATDLL As String = [Ô]C:\minhapasta\GERSAT.dll[Ô]

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function VersaoDllGerSAT() As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Private Shared Function ConsultarStatusOperacional2(numeroSessao As Integer, <MarshalAs(UnmanagedType.LPStr)> codigoDeAtivacao As String) As String
End Function


<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ConsultarStatusOperacional(sessao As Integer, cod As String) As IntPtr
End Function

[ô] <DllImport(Dll_Folder & [Ô]SAT.DLL[Ô], CallingConvention:=CallingConvention.Cdecl)> _
<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function EnviarDadosVenda(sessao As Integer, cod As String, dados As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function CancelarUltimaVenda(sessao As Integer, cod As String, chave As String, dadoscancel As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function TesteFimAFim(sessao As Integer, cod As String, dados As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ConsultarSAT(sessao As Integer) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ConsultarNumeroSessao(sessao As Integer, cod As String, sessao_a_ser_consultada As Integer) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function AtivarSAT(sessao As Integer, tipoCert As Integer, cod_Ativacao As String, cnpj As String, uf As Integer) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ComunicarCertificadoICPBRASIL(sessao As Integer, cod As String, csr As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ConfigurarInterfaceDeRede(sessao As Integer, cod As String, xmlConfig As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function AssociarAssinatura(sessao As Integer, cod As String, cnpj As String, sign_cnpj As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function DesbloquearSAT(sessao As Integer, cod_ativacao As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function BloquearSAT(sessao As Integer, cod_ativacao As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function TrocarCodigoDeAtivacao(sessao As Integer, cod_ativacao As String, opcao As Integer, nova_senha As String, conf_senha As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function ExtrairLogs(sessao As Integer, cod_ativacao As String) As IntPtr
End Function

<DllImport(strSATDLL, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function AtualizarSoftwareSAT(sessao As Integer, cod_ativacao As String) As IntPtr
End Function



End Class




[ô] envio da venda

Dim cmdLineStr = [Ô][Ô] as string
cmdLineStr = Marshal.PtrToStringAnsi(SAT_GERTEC.EnviarDadosVenda(Nr_Sessao, vSat_Cd_Ativacao, cupomXml))
[ô]Converte a resposta em UTF8
Dim bytes() As Byte = Encoding.Default.GetBytes(cmdLineStr)
cmdLineStr = Encoding.UTF8.GetString(bytes)
[ô]Divide a resposta
Dim respostaSplited() As String
respostaSplited = SplitcmdLineStr [Ô]|[Ô])




GEORGENES 08/09/2016 19:39:19
#466650
NILSONTRES
Consegui enviar a venda e o cancelamento no Gertec, porem o gerador de log deste equipamento quando dar erro não informa o que esta errado, que no meu caso ficou faltando o IndRegra.
Pra descobrir tal erro precisei simular no SDK da Tanca que informa os campos que estão errados, o que não ocorre com o software de ativação do Gertec, que gera um arquivo txt que vc depois tem que abrir este arquivo via Wordpad para ver , eu particularmente não gostei
NILSONTRES 08/09/2016 21:01:17
#466651
Citação:

Consegui enviar a venda e o cancelamento no Gertec, porem o gerador de log deste equipamento quando dar erro não informa o que esta errado, que no meu caso ficou faltando o IndRegra.
Pra descobrir tal erro precisei simular no SDK da Tanca que informa os campos que estão errados, o que não ocorre com o software de ativação do Gertec, que gera um arquivo txt que vc depois tem que abrir este arquivo via Wordpad para ver , eu particularmente não gostei


Nunca utilizei o log desses aparelhos, alias nem sabia que existia, eu faço a validação da mesma forma da NFE, via xsd.
PAULOOLIVEIRA 09/09/2016 08:38:14
#466657
Caros, bom dia!

Tenho um ex-cliente que cancelou o meu contrato de prestação de servicos, no entanto meu cnpj esta vinculado ao sat da empresa, sabem me dizer como [Ô]desvincular[Ô] este sat do meu Cnpj?

Grato!

Paulo
NILSONTRES 09/09/2016 09:14:37
#466658
Paulo,
Não precisa fazer nada, quando ele contratar outro desenvolvedor, basta que ele faça o vinculo a ele, sai do seu e passa para o outro.
GEORGENES 09/09/2016 10:19:13
#466661
NILSONTRES
Quals os xsd que vc usa pra validar o xml do sat, eu busquei na net no site da sefaz e tem um monte deles, porem não consegui identificalos
Seria este CfeRecepcao_0007.xsd ?
NILSONTRES 09/09/2016 15:22:06
#466666
Eu utilizo esse ai, na época que saiu o sat eu peguei não lembro de onde, mas tive que fazer uma adaptações, funciona bem até hoje.
Página 84 de 91 [908 registro(s)]
Faça seu login para responder