quinta-feira, 8 de julho de 2021

DICAS 3366 - WINDEV WEBDEV MOBILE - Busca Cnpj e Inscricao Estadual Sefaz - Curso WebService - 34





Bom Dia Boa Tarde Boa Noite

https://youtu.be/cJSEfRu2msA



Mande um email pedido para receber todas notificaçoes dos videos 

==============================================================

Seja Membro do Canal e tenha direito a consultorias com precos diferenciados
https://www.youtube.com/channel/UCQGPHrppG5XKoRbeOIgLJEA/join
Beneficios Membros: 
     Skype Privado
     Sugerir ou pedir Videos
     Valroes de consultorias com precos acesiveis
     Pedir para eu refazer uma exemplo versao inferior
     Quero Refazer meu sistema no windev, onde comecar?
     Como fazer uma proteção on-line do seu sistema ?
     Meu projeto será grande, como devo fazer?

==============================================================


Esse Video vai estrear as 10:00 do dia 10/07/2021

DICAS 3366 - WINDEV WEBDEV MOBILE - Busca Cnpj e Inscricao Estadual Sefaz - Curso WebService - 34





ASSUNTOS


Mostrar as tabelas que acompanhan o exemplo
Cliente 
Estado 
    com os links do webservice
Empresa 
    fiz a busca do certificado - mostrar 
Vamos criar um botao para buscar cnpj , inscricao estadual e outros dados 
Vamos criar o envelop soap 
Vamos chamar o certificado - HTTPCertificate
Vamos usar HTTPRequest
VAmos ler o retorno HTTPGetResult
Vamos pegar os dados do xml

========================= Codigos
// Busca dados pela Receita - busca cnpj
dados_json is JSON=""
sUrl is string="https://www.receitaws.com.br/v1/cnpj/[%EDT_Cnpj_cpf%]" 
IF HTTPRequest(sUrl) THEN // vamos recuperar o resultado da url com httprequest 
    dados_json=HTTPGetResult() // vamos ler o resultado do http 
    dados_json=UTF8ToAnsi(dados_json) // CONVERTE dados_json No FORMATO UTF8
END
EDT_Retorno_json=dados_json //VAMOS PEGAR OS DADOS DO JSON 
EDT_Razao_social=dados_json.nome
EDT_Atividade = dados_json.ATIVIDADE_PRINCIPAL[1].text
EDT_Atividade_cod = dados_json.ATIVIDADE_PRINCIPAL[1].code
EDT_Data = StringToDate(dados_json.data_situacao,"dd/mm/yyyy")
EDT_Complemento = dados_json.complemento
EDT_Tipo = dados_json.tipo
EDT_Uf = dados_json.uf
EDT_Bairro = dados_json.bairro
EDT_Logradouro = dados_json.logradouro
EDT_Numero = dados_json.numero
EDT_Cep = dados_json.cep
EDT_Municipio = dados_json.municipio
EDT_Porte = dados_json.porte
EDT_Abertura = dados_json.abertura 
EDT_Natureza_juridica = dados_json.natureza_juridica
ultima_atualizacao is string = dados_json.ultima_atualizacao
data is Date = ""
data.Day = ultima_atualizacao[[9 TO 10]]
data.Month = ultima_atualizacao[[6 TO 7]]
data.Year = ultima_atualizacao[[1 TO 4]]
EDT_Data_atualizacao = data
EDT_Status = dados_json.status
EDT_Fantasia = dados_json.fantasia
EDT_Email = dados_json.email
EDT_Efr = dados_json.efr
EDT_Motivo_situacao = dados_json.motivo_situacao
EDT_Situacao_especial = dados_json.data_situacao_especial 
EDT_Capital_Social = dados_json.capital_social 
EDT_Extra = dados_json.extra
EDT_Telefone = dados_json.telefone

====================================

// - Busca dados pelo Sefaz com certificado - vamos criar as variaveis

bWebservice_ok is boolean = False
sUf_estado is string = EDT_Uf
sCnpj_cpf is string = EDT_Cnpj_cpf
sCnpj_ou_cpf_xml is string = ""
s_codigo_uf_ibge is string = "43"
s_web_service_consulta is string = "https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx"
s_recebe_assinatura_arquivo is string = ""

// vamos obrigar a digitar o estado e o cnpj para poder fazer a consulta
LOOP
Input("estado",sUf_estado)
Input("Cnpj/Cpf",sCnpj_cpf)
IF sUf_estado="" OR sCnpj_cpf="" THEN
Info("Informar Estado e Cnpj")
ELSE
BREAK
END
END
IF Length(sCnpj_cpf)=14 THEN
sCnpj_ou_cpf_xml="<CNPJ>"+sCnpj_cpf+"</CNPJ>"
ELSE
sCnpj_ou_cpf_xml="<CPF>"+sCnpj_cpf+"</CPF>"
END

HReadSeekFirst(estado,uf,sUf_estado)
IF HFound(estado) THEN
s_codigo_uf_ibge = estado.codigo_uf_ibge
s_web_service_consulta = estado.webservice_consulta_cadastro
END

sEnvelopE_soap is string=[
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Header>
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro4">
<cUF>[%s_codigo_uf_ibge%]</cUF>
<versaoDados>2.00</versaoDados>
</nfeCabecMsg>
</soap12:Header>
<soap12:Body>
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro4">
<ConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<infCons>
<xServ>CONS-CAD</xServ>
<UF>[%sUf_estado%]</UF>
[%sCnpj_ou_cpf_xml%]
</infCons>
</ConsCad>
</nfeDadosMsg>
</soap12:Body>
</soap12:Envelope>
]

HReadSeekFirst(empresa,empresaID,1)
IF HFound(empresa) THEN
s_recebe_assinatura_arquivo=NoSpace(empresa.certificado_thumprint,sscAll)
Message("Procurando HttpCertificate ...")
ELSE
s_recebe_assinatura_arquivo=""
END

//  HTTPCertificate(s_recebe_assinatura_arquivo)

HTTPCertificate(s_recebe_assinatura_arquivo)
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName
// webservice_ok = HTTPRequest(s_web_service_consulta,"","",envelopE_soap,"text/xml") 
bWebservice_ok = HTTPRequest(s_web_service_consulta,"","",sEnvelopE_soap,"text/xml")
//IF webservice_ok=False THEN

IF bWebservice_ok=False THEN
Info("nao foi possivel realizar a consulta, tente novamente mais tarde")
Error(ErrorInfo(errFullDetails))
ELSE
// vamos pegar o retorno
sRetorno is string=HTTPGetResult(httpResult)
EDT_Retorno_xml=sRetorno
// nesse momento ja temos o xml de retorno
EDT_Inscricao_estadual=XMLExtractString(EDT_Retorno_xml,"IE")
EDT_Razao_social = XMLExtractString(EDT_Retorno_xml,"xNome")
EDT_Fantasia = XMLExtractString(EDT_Retorno_xml,"xFant")
EDT_Logradouro = XMLExtractString(EDT_Retorno_xml,"xLgr")
EDT_Numero = XMLExtractString(EDT_Retorno_xml,"nro")
EDT_Bairro = XMLExtractString(EDT_Retorno_xml,"xBairro")
EDT_Municipio = XMLExtractString(EDT_Retorno_xml,"xMun")
EDT_Cep = XMLExtractString(EDT_Retorno_xml,"CEP")
END

====

// Busca Certificado no cadastro de empresa



//quando usar o 22 , posso usar esse

certificado is Certificate
certificado = CertificateSelect() // ver como fazer abrir certificado sem abrir janela

IF certificado.Name = "" THEN
RETURN
END
IF certificado.ValidForSignature = False THEN
Info("O certificado selecionado não pode ser utilizada para gerar uma assinatura")
RETURN
END
EDT_Certificado_thumprint = NoSpace(certificado.ThumbPrint,sscAll)

-=-===


// - Ler arquivo de estados com webservice - cria uf
sFile is string

// Opens the file picker
sFile = fSelect("", "", "SELECIONA ESTADO CONVERSAO", "TXT" + TAB + "*.TXT", "*.TXT")

nArquivoid is int = fOpen(sFile,foReadWrite)
IF nArquivoid<>-1 THEN
LOOP
sLinha is string= fReadLine(nArquivoid)
Trace(sLinha)
IF sLinha = EOT THEN
BREAK
ELSE
IF sLinha="" THEN
BREAK
ELSE
sUF_ESTADO is string = ExtractString(sLinha,firstRank,"|")
IF sUF_ESTADO="FIM" THEN
BREAK
ELSE
sNOME_ESTADO is string = ExtractString(sLinha,nextRank,"|")
sCUF_ESTADO is string = ExtractString(sLinha,nextRank,"|")
sWEBSERVICE_ESTADO is string = ExtractString(sLinha,nextRank,"|")
HReadSeekFirst(estado,uf,sUF_ESTADO)
IF HFound(estado) THEN
estado.uf = sUF_ESTADO
estado.nome = sNOME_ESTADO
estado.codigo_uf_ibge = sCUF_ESTADO
estado.webservice_consulta_cadastro = sWEBSERVICE_ESTADO
HModify(estado)
ELSE
estado.uf = sUF_ESTADO
estado.nome = sNOME_ESTADO
estado.codigo_uf_ibge = sCUF_ESTADO
estado.webservice_consulta_cadastro = sWEBSERVICE_ESTADO
HAdd(estado)
END
END
END
END
END
END
// sCria_uf is string=[
// AM|AMAZONAS|13|https://nfe.sefaz.am.gov.br/services2/services/cadconsultacadastro2
// BA|BAHIA|29|https://nfe.sefaz.ba.gov.br/webservices/nfenw/CadConsultaCadastro2.asmx  
// CE|CEARA|23|https://nfe.sefaz.ce.gov.br/nfe2/services/CadConsultaCadastro2?wsdl 
// GO|GOAIS|52|https://nfe.sefaz.go.gov.br/nfe/services/v2/CadConsultaCadastro2?wsdl
// MA|MARANHAO|21|https://sistemas.sefaz.ma.gov.br/wscadastro/CadConsultaCadastro2?wsdl
// MS|MATO GROSSO do SUL|50|https://nfe.fazenda.ms.gov.br/producao/services2/CadConsultaCadastro2
// PA|PARA|15|https://nfe2.fazenda.pr.gov.br/nfe/CadConsultaCadastro2?wsdl  
// PE|PERNAMBUCO|26|https://nfe.sefaz.pe.gov.br/nfe-service/services/CadConsultaCadastro2" 
// PR|PARANA|41|https://nfe2.fazenda.pr.gov.br/nfe/CadConsultaCadastro2?wsdl
// RS|RIO GRANDE do SUL|43|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// SP|SAO PAULO|35|https://nfe.fazenda.sp.gov.br/ws/cadconsultacadastro2.asmx
// AC|ACRE|12|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// AL|ALAGOAS|27|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx 
// AP|AMAPA|16|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// DF|DISTRITO FEDERAL|53|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// ES|ESPIRITO SANTO|32|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// EX|EXTERIOR-DIVERSOS|0|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// MG|MINAS GERAIS|31|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx 
// MT|MATO GROSSO|51|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// PB|PARAIBA|25|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// PI|PIAUI|22|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// RJ|RIO of JANEIRO|33|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx 
// RN|RIO GRANDE do NORTE|24|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// RO|RONDONIA|11|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// RR|RORAIMA|14|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// SC|SANTA CATARINA|42|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// SE|SERGIPE|28|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx  
// to|TOCANTIS|17|https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx
// FIM|
// ]

INTERNAL PROCEDURE atualiza_estado_webservice()
SWITCH estado.uf
CASE "AM"
estado.webservice_consulta_cadastro="https://nfe.sefaz.am.gov.br/services2/services/cadconsultacadastro2"
CASE "BA"
estado.webservice_consulta_cadastro="https://nfe.sefaz.ba.gov.br/webservices/nfenw/CadConsultaCadastro2.asmx"
CASE "CE"
estado.webservice_consulta_cadastro="https://nfe.sefaz.ce.gov.br/nfe2/services/CadConsultaCadastro2?wsdl"
CASE "GO"
estado.webservice_consulta_cadastro="https://nfe.sefaz.go.gov.br/nfe/services/v2/CadConsultaCadastro2?wsdl"
CASE "MA"
estado.webservice_consulta_cadastro="https://sistemas.sefaz.ma.gov.br/wscadastro/CadConsultaCadastro2?wsdl"
CASE "MS"
estado.webservice_consulta_cadastro="https://nfe.fazenda.ms.gov.br/producao/services2/CadConsultaCadastro2"
CASE "PE"
estado.webservice_consulta_cadastro="https://nfe.sefaz.pe.gov.br/nfe-service/services/CadConsultaCadastro2"
CASE "PR"
estado.webservice_consulta_cadastro="https://nfe2.fazenda.pr.gov.br/nfe/CadConsultaCadastro2?wsdl"
CASE "RS"
estado.webservice_consulta_cadastro="https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx"
CASE "SP"
estado.webservice_consulta_cadastro="https://nfe.fazenda.sp.gov.br/ws/cadconsultacadastro2.asmx"
OTHER CASE
estado.webservice_consulta_cadastro="https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx"
END
HModify(estado)
END


--------------------- Indice WebService

Criar Projeto WebService - Lista Site - - WebService - 001/...
Deploy - Gerando WebService/Levando Servidor/Instalar/Mostrar - WebService - 002/...
Instalando SoapUI - Testar WebService - Aula 1040 - WebService - 003/...
Ajustando Xml Lista Site WebService - WebService - 004/...
Consumir WebService - WebService - 005
Xml - Consumir Ler Xml e colocar Tabela - WebService - 006
Dolar - Consumir WebService - Cotação Dolar - 007
Cnpj Receita - Consumir WebService - 008/...
Cep Buscar WebService Correio - WebService - 009/...
CONSULTA CADASTRO SEFAZ P-1 - DICAS 1871 - WINDEV_23 - WEBSERVICE 010 - 
CONSULTA CADASTRO SEFAZ P-2 - 1872 - PUBLICA - WINDEV_23 - WEBSERVICE 011 - 
CONSULTA CADASTRO SEFAZ P-3 - 1873 - PUBLICA - WINDEV_23 - WEBSERVICE 012 -
DICAS 1877 - WINDEV_23 - WEBSERVICE 014 - CNPJ BUSCA CADASTRO ACBR
DICAS 2019 - WINDEV - WEBSERVICE - 015 - APRENDER A FAZER REST WEBSERVICE
DICAS 2020 - WINDEV - WEBSERVICE - 016 - CRIANDO TABELAS
DICAS 2021 - WINDEV - WEBSERVICE - 017 - WDTESTREST
DICAS 2022 - WINDEV MOBILE - WEBSERVICE - 018 - LER WEBSERVICE RESTSend
DICAS 2023 - WINDEV MOBILE - WEBSERVICE - 019 - LER WEBSERVICE RESTSend SOMENTE 1 REGISTRO
DICAS 2024 - WINDEV MOBILE - WEBSERVICE - 020 - WEBSERVICE RESTSend CRIA NOVO REGISTRO - httpPost
DICAS 2025 - WINDEV MOBILE - WEBSERVICE - 021 - WEBSERVICE RESTSend ALTERA REGISTRO - httpPut
DICAS 2026 - WINDEV MOBILE - WEBSERVICE - 022 - WEBSERVICE httpRequest httpDelete
DICAS 2033 - WINDEV - WEBSERVICE 23 - HTTPRequest - HTTPGetResult - fSaveBuffer - BAIXAR ARQUIVO
AO VIVO-SOAP-DICA 2095-WINDEV MOBILE WEBDEV-WEBSERVICE COM MOBILE -
DICAS 2096-2095 - WINDEV WEBDEV MOBILE - WEBSERVICE 25 - SOAP
DICAS 2097 - WINDEV MOBILE - WEBSERVICE 26 - MOSTRAR CLIENTES - SOAP
DICAS 2132 - HANGOUT AO VIVO 20 HORAS 30/05 - WEBSERVICE SOAP COM MOBILE
DICAS 2163 WINDEV WEBDEV MOBILE WEBSERVICE 28 SOAP
DICAS 2226 WINDEV WEBDEV MOBILE 24 NOVIDADES 26 WEBSERVICE 29 HTTPREQUEST - BUSCA CNPJ
DICA 2687 - WINDEV WEBDEV MOBILE - WEBSERVICE 32 - EXPLICANDO WEBSERVICE SOAP E CONSUMIDO MOBILE E DESKTOP

------------------- 





















============================================================================================

cnpj Inscricao Estadual Busca sefaz com certificado 3366



https://windevdesenvolvimento.blogspot.com/2021/07/dicas-3366-windev-webdev-mobile-busca.html


This Video will premiere at 10:00 am on 07/10/2021
cnpj State Registration Busca sefaz with certificate 3366



https://windevdesenvolvimento.blogspot.com/2021/07/dicas-3366-windev-webdev-mobile-busca.html

Cette vidéo sera diffusée à 10h00 le 10/07/2021
cnpj État d'enregistrement Busca sefaz avec certificat 3366


Teste

Teste
teste