-
Notifications
You must be signed in to change notification settings - Fork 0
/
ACBrConsultaCNPJ.py
64 lines (47 loc) · 2.33 KB
/
ACBrConsultaCNPJ.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import ctypes
while True:
print("Menu:")
print("1. cwsBrasilAPI")
print("2. cwsReceitaWS")
print("Digite 0 para sair")
try:
provedor = int(input("Escolha uma opção: "))
if provedor == 1:
print("Você escolheu a Opção 1.")
elif provedor == 2:
print("Você escolheu a Opção 2.")
else:
print("Encerrando o programa.")
break
# Carregar a DLL
acbr_lib = ctypes.CDLL(r'C:\ACBrLibConsultaCNPJPython\ACBrConsultaCNPJ64.dll')
inicializa = acbr_lib.CNPJ_Inicializar(r'C:\ACBrLibConsultaCNPJPython\ACBrConsultaCNPJ.INI'.encode("utf-8"),"".encode("utf-8"))
# Definir a assinatura da função
acbr_lib.CNPJ_Consultar.argtypes = (ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p, ctypes.POINTER(ctypes.c_int))
acbr_lib.CNPJ_Consultar.restype = ctypes.c_int
# Definir variáveis para armazenar os resultados
#sResposta = ctypes.create_string_buffer(256) # Substitua 256 pelo tamanho máximo esperado da string
esTamanho = ctypes.c_int(1024)
# Definir o valor do CNPJ como uma string
# cnpj_valor = "27329866000105"
cnpj_valor = input("Digite o CNPJ (somente numeros): ")
# Criar um buffer de string com espaço suficiente
sCNPJ = ctypes.create_string_buffer(15) # +1 para o caractere nulo de terminação
# Copiar o valor do CNPJ para o buffer
ctypes.memmove(sCNPJ, cnpj_valor.encode('utf-8'), len(cnpj_valor))
# Chamar a função CNPJ_Versao
sResposta = ctypes.create_string_buffer(1024)
resultado = acbr_lib.CNPJ_Consultar(sCNPJ,provedor,sResposta,ctypes.byref(esTamanho))
#sVersao = ctypes.create_string_buffer(15)
#resultado = acbr_lib.CNPJ_Versao(sVersao, ctypes.byref(esTamanho))
# Verificar o resultado
if resultado == 0:
print(f"tamanho da resposta: {esTamanho}")
sMensagem = ctypes.create_string_buffer(534 + 1)
acbr_lib.CNPJ_UltimoRetorno(sMensagem,ctypes.byref(esTamanho))
print(sMensagem.value.decode('utf-8'))
else:
print(f"Falha ao consultar CNPJ. Código de erro: {resultado}")
acbr_lib.CNPJ_Finalizar()
except ValueError:
print("Entrada inválida. Por favor, digite um número.")