quinta-feira, 22 de julho de 2021

DICAS 3373 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 4 - Assinar em Windev - Curso Webservice - 40



https://youtu.be/p1A7PjIzebc




Bom Dia Boa Tarde Boa Noite

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 26/07/2021

DICAS 3373 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 4 - Assinar em Windev - Curso Webservice - 40



ASSUNTOS

00:00 Introducao
00:46 Vamos entrar no projeto NFeDistribuicaoDFe_assinar_xml_windeV_337
00:56 Vamos incluir no .Net Assemblies mscorlib,System,System.Security,System.XML
01:57 Vamos criar uma procedure global assinar_xml 
02:16 Vamos receber os parametros da procedure assinar 
02:34 Pegando o certificado e lendo o xml 
03:20 Assinado o xml 
03:39 Retornando o xml assinado

Relaçao dos Webservices - Producao
Sefaz Rio Grande do Sul - (RS)

Relacao dos webservices - Homologação
Sefaz Rio Grande do Sul - (RS)


--------------- CODIGO

//PROCEDURE assinar_xml(recebe_xml,recebe_refUri,recebe_chNfe)
clX509certi is X509Certificate2("D:\BACKUP_HD\AMARILDO\infinity\certificado_rm2020.pfx","rm2020")
clDoc is System.Xml.XmlDocument;
clDoc.LoadXml(recebe_xml) // Ler um arquivo Xml 
nQtdeRefUri is int= clDoc.GetElementsByTagName(recebe_refUri).Count //_refUri= (sRefUri IS STRING = "infNFe")
IF (nQtdeRefUri) =0 THEN
RESULT "erro assinar" //nao existe // does not exists // ne pas exister
ELSE
VrSignedXml is SignedXml(clDoc) //cria um objeto assinado  
VrSignedXml.SigningKey = clX509certi.PrivateKey // adiciona a chave do certificado 
Reference is Reference //= new Reference(); // Cria a referencia para assinatura 
Reference.URI = "#" + recebe_chNfe
Env is XmlDsigEnvelopedSignatureTransform  // adiciona um XmlDsigEnvelopedSignatureTransform para a assinatura    
Reference.AddTransform(Env)    
c14 is XmlDsigC14NTransform 
Reference.AddTransform(c14)
VrSignedXml.AddReference(Reference) // adiciona a referencia no xml assinado 
VrkeyInfo is KeyInfo // Cria a chave 
VrkeyInfo.AddClause(new KeyInfoX509Data(clX509certi)) // carrega o certificado em um keyinfox509 e adiciona ao keyinfo 
VrSignedXml.KeyInfo = VrkeyInfo // adiciona o keyinfo ao xml assinado 
VrSignedXml.ComputeSignature()  
xmlDigitalSignature is System.Xml.XmlElement dynamic = VrSignedXml.GetXml() // busca a representacao XML da assinatura e salva no XML       
clDoc.DocumentElement.AppendChild(clDoc.ImportNode(xmlDigitalSignature, True)) // adiciona a assinatura no documento  
  
RESULT clDoc.get_InnerXml() //salva o documento assinado 
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

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


















segunda-feira, 19 de julho de 2021

DICAS 3372 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 3 - Criando Tabela Resumo Notas em Windev - Curso Webservice - 39






https://youtu.be/qGekJAkef_A




Bom Dia Boa Tarde Boa Noite

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 23/07/2021

DICAS 3372 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 3 - Criando Tabela Resumo Notas em Windev - Curso Webservice - 39




Relaçao dos Webservices - Producao
Sefaz Rio Grande do Sul - (RS)

Relacao dos webservices - Homologação
Sefaz Rio Grande do Sul - (RS)



ASSUNTOS

NFeDistribuicaoDFe - Parte 3 - Criando Tabela Resumo Notas em Windev

00:00 Introducao
00:48 Criando a tabela manifestacao_Resumo
01:19 Adicionado os campos da tabela 
02:28 Vamos adicionar campos extras que vamos precisar 
03:55 Vamos sicronizar a analise
04:21 Voltando para Janela status servicos e vamos clicar tab 
04:27 Criar guia - Relacao manifestacao resumo 
04:48 Vamos Criar a relacao da Tabela resumo 
05:22 Vamos alterar a tabela, colocando a chNFe como Chave 
05:57 Vamos voltar para o codigo da busca
06:31 Explicanco descompacta_xml 
06:52 Vamos pegar a chave da nota e ver se existe no resumo 
07:58 Adicionado numero do nsu no resumo 
08:10 Adicionando os outros dados
09:49 vamos criar uma internal procedure move_Dados para ficar mais claro 
10:39 executando e mostrando


---------------- CODIGO


// Status Nfe // btnNfeDistribuicaoDfe

s_recebe_thumprint_certificado is string = "" // vamos criar duas variaveis - 
s_web_service is string = ""
IF RADIO_ambiente=1 THEN // se o ambiente for igual 1- Producao ou se for igual 2 - Homologaão
s_web_service="https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
ELSE 
s_web_service="https://hom.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
END

// vamos fazer sEnvelopE_soap

sUltnsu_15 is string=NumToString(EDT_UltNSU,"015d")

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:Body>
<nfeDistDFeInteresse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe">
<nfeDadosMsg>
<distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01">
<tpAmb>[%RADIO_ambiente%]</tpAmb>
<CNPJ>[%EDT_Cnpj_cpf_dfe%]</CNPJ>
<distNSU>
<ultNSU>[%sUltnsu_15%]</ultNSU>
</distNSU>
</distDFeInt>
</nfeDadosMsg>
</nfeDistDFeInteresse>
</soap12:Body>
</soap12:Envelope>
]

sEnvelope_soap=Replace(sEnvelope_soap,CR,"") // vamos tirar os cr da variavel senvelope_soap
EDT_ENVELOPE_SOAP_ENVIADO=sEnvelope_soap // vamos agora colocar o envelope soap no edt 
// vamos ler o cadastro de empresas e pegar o certificado ja selecionado

HReadSeekFirst(empresa,empresaID,1)
IF HFound(empresa) THEN
s_recebe_thumprint_certificado=NoSpace(empresa.certificado_thumprint,sscAll)
Message("Procurando HttpCertificate ...")
ELSE
s_recebe_thumprint_certificado=""
END
HTTPCertificate(s_recebe_thumprint_certificado) // vamos ler o certificado com HTTPCertificate - e caso ele nao encontre nada, ele vai pedir para escolehr 
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName

bMensagem is boolean=HTTPRequest(s_web_service,"","",sEnvelope_soap,"text/xml;charset=UTF-8","","")
HTTPCertificate("") //Vamos limpar da memoria o certificado 

IF bMensagem=False THEN
   Error(ErrorInfo(errFullDetails))
   
ELSE 
EDT_RETORNO_SOAP = HTTPGetResult(httpResult)
EDT_Retorno_xml = XMLExtractString(EDT_RETORNO_SOAP,"nfeDistDFeInteresseResult")
EDT_TpAmb = XMLExtractString(EDT_Retorno_xml,"tpAmb")
EDT_Cstat = XMLExtractString(EDT_Retorno_xml,"cStat")
EDT_Xmotivo = XMLExtractString(EDT_Retorno_xml,"xMotivo")
EDT_dhResp = XMLExtractString(EDT_Retorno_xml,"dhResp")
EDT_UltNSU_retorno = XMLExtractString(EDT_Retorno_xml,"ultNSU")
EDT_maxNSU = XMLExtractString(EDT_Retorno_xml,"maxNSU")
// nesse momento ja temos o xml de retorno
sNome_tag is string="" // nome_tag string - nUmero_nsu int  - Vamos criar duas variaveis
    nUmero_nsu is int=0
    bAchouxml is boolean=XMLDocument("xml_dfe",EDT_Retorno_xml) // vamos abrir o documento xml 
XMLFind("xml_dfe",Null,XMLContinue+XMLChildItem)
WHILE XMLFound("xml_dfe") // vamos percorrer esse xml // WHILE XMLFound("XML_dfe")  
          sNome_tag = XMLElementName("xml_dfe") //vamos pegar o nome da tag -
  IF sNome_tag="docZip" THEN // vamos verificar se a tag encontrada é doczip 
                 bufFer_resumo is Buffer = XMLData("xml_dfe") // Vamos pegar o dado do resumo 
       bufFer_descompactar is Buffer = Decrypt(bufFer_resumo,"",compressNone,encodeBASE64) // Vamos comecar a descompatar 
                 sDescompacta_xml is string=Uncompress(bufFer_descompactar) // vamos jogar numa string a descompactacao 
                 XMLNext("xml_dfe") // agora vou para proxima tag pegar o numero do nsu 
                 nUmero_nsu=XMLData("xml_dfe") // como eu sei que a proxima tag é o numero do nsu , vou pegar ele
                 fSaveText("C:\temp\resumo_nota_"+nUmero_nsu+".xml",sDescompacta_xml) // vamos agora salvar em disco o resumo da nota                 
                 
                 sChnfe is string=XMLExtractString(sDescompacta_xml,"chNFe") // Vamos pegar a chave da nota no resumo 
                 HReadSeekFirst(manifestacao_resumo,chNfe,sChnfe) // vamos verificar se essa chave existe no resumo 
IF HFound(manifestacao_resumo) THEN
// se encontrou
ELSE  // nao encontrou - ou nao existe 
manifestacao_resumo.nsu = nUmero_nsu
manifestacao_resumo.chNfe = sChnfe
move_dados()
HAdd(manifestacao_resumo)
END
INTERNAL PROCEDURE move_dados()
manifestacao_resumo.xnome = XMLExtractString(sDescompacta_xml,"xNome")
manifestacao_resumo.ie = XMLExtractString(sDescompacta_xml,"IE")
manifestacao_resumo.tpNf = XMLExtractString(sDescompacta_xml,"tpNF")
manifestacao_resumo.digval = XMLExtractString(sDescompacta_xml,"digVal")
manifestacao_resumo.nProt = XMLExtractString(sDescompacta_xml,"nProt")
manifestacao_resumo.vnf = XMLExtractString(sDescompacta_xml,"vNF")
manifestacao_resumo.csitNfe = XMLExtractString(sDescompacta_xml,"cSitNFe")
manifestacao_resumo.cnpj = XMLExtractString(sDescompacta_xml,"CNPJ")
//<dhEmi>2021-07-14T12:43:48-03:00</dhEmi>
dAta is Date = ""
dhemissao_hora is string = XMLExtractString(sDescompacta_xml,"dhEmi")
dAta.Day = dhemissao_hora[[9 TO 10]]
dAta.Month = dhemissao_hora[[6 TO 7]]
dAta.Year = dhemissao_hora[[1 TO 4]]
hora is Time=""
hora.Hour = dhemissao_hora[[12 TO 13]]
hora.Minute = dhemissao_hora[[15 TO 16]]
hora.Second = dhemissao_hora[[18 TO 19]]
manifestacao_resumo.dhemi = dAta
manifestacao_resumo.hr_emissao = hora 
dAta = ""
dhemissao_hora = XMLExtractString(sDescompacta_xml,"dhRecbto")
dAta.Day = dhemissao_hora[[9 TO 10]]
dAta.Month = dhemissao_hora[[6 TO 7]]
dAta.Year = dhemissao_hora[[1 TO 4]]
hora = ""
hora.Hour = dhemissao_hora[[12 TO 13]]
hora.Minute = dhemissao_hora[[15 TO 16]]
hora.Second = dhemissao_hora[[18 TO 19]]
manifestacao_resumo.dhrecbto = dAta
manifestacao_resumo.hora_recibo = hora
manifestacao_resumo.ciencia_cstat = ""
manifestacao_resumo.ciencia_motivo = ""
manifestacao_resumo.confirmado_cstat = ""
manifestacao_resumo.confirmado_motivo = ""
manifestacao_resumo.desconhecimento_Csat = ""
manifestacao_resumo.desconhecimento_motivo = ""
manifestacao_resumo.xml_baixado_documento = ""
manifestacao_resumo.soap_enviado = EDT_ENVELOPE_SOAP_ENVIADO
manifestacao_resumo.soap_retorno = EDT_RETORNO_SOAP
manifestacao_resumo.xml_retorno = EDT_Retorno_xml
END
                                  
          END
          // vamos ao final da pergunta, ir para outra tag
          XMLNext("xml_dfe")
END
fSaveText("c:\temp\EDT_ENVELOPE_SOAP_ENVIADO.txt",EDT_ENVELOPE_SOAP_ENVIADO)
fSaveText("c:\temp\EDT_RETORNO_SOAP.txt",EDT_RETORNO_SOAP)
fSaveText("c:\temp\EDT_Retorno_xml.txt",EDT_Retorno_xml)
Info("Buscado Notas")
//xml_erro
//xml_dist_dfe --> proprio xml
// S_xml_nfe
// S_xml_evento
// Doczip
// Xml_arquivo
// Local_arquivo
// Xml_baixado boolean
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

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















sexta-feira, 16 de julho de 2021

DICAS 3371 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 2 - doczip - relacao resumo notas Em Windev - Curso Webservice - 38


https://youtu.be/aIzHSeNmZVU





Bom Dia Boa Tarde Boa Noite

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 21/07/2021

DICAS 3371 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 2 - doczip - relacao resumo notas Em Windev - Curso Webservice - 38










Relaçao dos Webservices - Producao
Sefaz Rio Grande do Sul - (RS)

Relacao dos webservices - Homologação
Sefaz Rio Grande do Sul - (RS)


Assuntos 

00:00 Introducao
00:44 Explicando o xml de retorno e o que sera feito 
01:35 Entrando no codigo da distribuicao Nfe 
02:02 Criando as variaveis nome tag e numero nsu 
02:16 Vamos abrir o documento xml do retorno xml 
02:44 XmlFind
03:07 Vamos percorrer o Xml
03:18 Vamos pegar o nome da tag
03:32 Vamos verificar se a tag encontrada é doczip
03:53 Vamos pegar os dados do resumo
04:13 Vamos descompactar o buffer
04:50 Vamos jogar numa string a descompactação
05:09 Vamos pegar o numero do nsu
05:47 Vamos salvar em disco o resumo da nota
06:18 ao final da pergunta vamos para outra tag
06:27 Vamos executar o programa e pegar as notas resumo
07:01 explicando o que sera feito na proxima aula

--------------------- 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

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















DICAS 3370 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe busca nota sefaz em windev - Ambiente Nacional - Curso Webservice - 37






https://youtu.be/7Ipo6xsHXNg





Bom Dia Boa Tarde Boa Noite

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 19/07/2021

DICAS 3370 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe busca nota sefaz em windev - Ambiente Nacional - Curso Webservice - 37




Relaçao dos Webservices - Producao
Sefaz Rio Grande do Sul - (RS)

Relacao dos webservices - Homologação
Sefaz Rio Grande do Sul - (RS)


Assuntos 

NFeDistribuicaoDFe busca nota sefaz em windev - Ambiente Nacional
NFeDistribuicaoDFe_busca_nota_sefaz_windev_3370
00:00 Introducao
00:48 Criando guia Dfe 
01:24 Criando os controles
02:36 Criando um edt multilinha
02:48 Copiando o botao para NFeDistribuicaoDFe
03:18 Vamos pegar os links dos webservices 
04:12 Vamos alterar o envelop - soap
04:44 Vamos colocar o xml dentro do soap 
05:18 Vamos alterar as variaveis do soap 
06:37 Explicando o codigo do certificado
07:06 VAmos dar o httprequest 
07:51 Mostrando o envelope soap enviado 
07:57 Buscando o retorno do soap com httpGetResult
08:11 Mostrando o envelope/xml soap retornado
08:31 Separando retorno xml 
08:46 Mostrando o retorno xml 
08:54 alimentando os campos do xml retornado 
09:10 Vamos salvar no disco as informacoes enviadas e retornadas
09:39 VAmos executar e testar o programa
10:16 Explicando proxima aula - pegar os resumos de notas

------------------- Codigo

// Status Nfe // btnNfeDistribuicaoDfe

s_recebe_thumprint_certificado is string = "" // vamos criar duas variaveis - 
s_web_service is string = ""
IF RADIO_ambiente=1 THEN // se o ambiente for igual 1- Producao ou se for igual 2 - Homologaão
s_web_service="https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
ELSE 
s_web_service="https://hom.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
END

// vamos fazer sEnvelopE_soap

sUltnsu_15 is string=NumToString(EDT_UltNSU,"015d")

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:Body>
<nfeDistDFeInteresse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe">
<nfeDadosMsg>
<distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01">
<tpAmb>[%RADIO_ambiente%]</tpAmb>
<CNPJ>[%EDT_Cnpj_cpf_dfe%]</CNPJ>
<distNSU>
<ultNSU>[%sUltnsu_15%]</ultNSU>
</distNSU>
</distDFeInt>
</nfeDadosMsg>
</nfeDistDFeInteresse>
</soap12:Body>
</soap12:Envelope>
]

sEnvelope_soap=Replace(sEnvelope_soap,CR,"") // vamos tirar os cr da variavel senvelope_soap
EDT_ENVELOPE_SOAP_ENVIADO=sEnvelope_soap // vamos agora colocar o envelope soap no edt 
// vamos ler o cadastro de empresas e pegar o certificado ja selecionado

HReadSeekFirst(empresa,empresaID,1)
IF HFound(empresa) THEN
s_recebe_thumprint_certificado=NoSpace(empresa.certificado_thumprint,sscAll)
Message("Procurando HttpCertificate ...")
ELSE
s_recebe_thumprint_certificado=""
END
HTTPCertificate(s_recebe_thumprint_certificado) // vamos ler o certificado com HTTPCertificate - e caso ele nao encontre nada, ele vai pedir para escolehr 
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName

bMensagem is boolean=HTTPRequest(s_web_service,"","",sEnvelope_soap,"text/xml;charset=UTF-8","","")
HTTPCertificate("") //Vamos limpar da memoria o certificado 

IF bMensagem=False THEN
   Error(ErrorInfo(errFullDetails))
   
ELSE 
EDT_RETORNO_SOAP = HTTPGetResult(httpResult)
EDT_Retorno_xml = XMLExtractString(EDT_RETORNO_SOAP,"nfeDistDFeInteresseResult")
EDT_TpAmb = XMLExtractString(EDT_Retorno_xml,"tpAmb")
EDT_Cstat = XMLExtractString(EDT_Retorno_xml,"cStat")
EDT_Xmotivo = XMLExtractString(EDT_Retorno_xml,"xMotivo")
EDT_dhResp = XMLExtractString(EDT_Retorno_xml,"dhResp")
EDT_UltNSU_retorno = XMLExtractString(EDT_Retorno_xml,"ultNSU")
EDT_maxNSU = XMLExtractString(EDT_Retorno_xml,"maxNSU")
// nesse momento ja temos o xml de retorno
//
fSaveText("c:\temp\EDT_ENVELOPE_SOAP_ENVIADO.txt",EDT_ENVELOPE_SOAP_ENVIADO)
fSaveText("c:\temp\EDT_RETORNO_SOAP.txt",EDT_RETORNO_SOAP)
fSaveText("c:\temp\EDT_Retorno_xml.txt",EDT_Retorno_xml)
Info("Buscado Notas")
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

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














quarta-feira, 14 de julho de 2021

DICAS 3369 - WINDEV WEBDEV MOBILE - Nfe Consulta Nota - NfeConsultaProtocolo - NfeConsulta4 - direto windev - Curso Webservice - 36








https://youtu.be/w1f_mKOKFfE





Bom Dia Boa Tarde Boa Noite

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 16/07/2021

DICAS 3369 - WINDEV WEBDEV MOBILE - Nfe Consulta Nota - NfeConsultaProtocolo - NfeConsulta4 - direto windev - Curso Webservice - 36


Esse exemplo se encontra no repositorio




ASSUNTOS

 Nfe Consulta Nota - NfeConsultaProtocolo - NfeConsulta4 
Explicando Duplicidade Nota 
Mostrando o que mudei desde que fiz Status Servico
Fazer guia - consulta nota 
Criando o edt ch-nfe
Criando o edt data recebido e numero protocolo 
Criando o botao para consultar a nota 

---------------- Codigo Consulta Protocolo

// btn consulta protocolo 
//https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx?op=nfeConsultaNF
// Status2
//<?xml version="1.0" encoding="utf-8"?>

s_web_service_consulta is string=""
IF RADIO_ambiente=1 THEN
// producao
s_web_service_consulta="https://nfe.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx"
ELSE
// homologação
s_web_service_consulta="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx"
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:Body>
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeConsultaProtocolo4">
<consSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<tpAmb>[%RADIO_ambiente%]</tpAmb>
<xServ>CONSULTAR</xServ>
<chNFe>[%EDT_chNFe%]</chNFe>
</consSitNFe>
</nfeDadosMsg>
</soap12:Body>
</soap12:Envelope>
]
sEnvelopE_soap=Replace(sEnvelopE_soap,CR,"")

EDT_ENVELOPE_SOAP_ENVIADO=sEnvelopE_soap

HTTPCertificate(gs_certificado_thumprint_impressao)
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName

bMensagem is boolean=HTTPRequest(s_web_service_consulta,"","",sEnvelopE_soap,"text/xml;charset=UTF-8","","")

HTTPCertificate("")

IF bMensagem=False THEN
Error(ErrorInfo(errFullDetails))
Error(ErrorInfo(errMessage))
ELSE
// vamos pegar o retorno
EDT_RETORNO_SOAP=HTTPGetResult(httpResult)
EDT_retorno_xml=XMLExtractString(EDT_RETORNO_SOAP,"nfeResultMsg")
somente_protocolo is string=XMLExtractString(EDT_retorno_xml,"infProt")
EDT_TpAmb = XMLExtractString(somente_protocolo,"tpAmb")
EDT_dhRecbto = XMLExtractString(somente_protocolo,"dhRecbto")
EDT_nProt = XMLExtractString(somente_protocolo,"nProt")
EDT_Cstat = XMLExtractString(somente_protocolo,"cStat")
EDT_Xmotivo = XMLExtractString(somente_protocolo,"xMotivo")
// nesse momento ja temos o xml de retorno
END

------------------------------- SEleciona certificado

// seleciona certificado

//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)

-------------- Codigo Status servico

//Status SErvico
//https://nfe.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx
// Status1
//<?xml version="1.0" encoding="utf-8"?>

s_web_service is string=""
IF RADIO_ambiente=1 THEN
// producao
s_web_service="https://nfe.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx"
ELSE
// homologação
s_web_service="https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx"
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:Body>
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4">
<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<tpAmb>[%RADIO_ambiente%]</tpAmb>
<cUF>[%EDT_cUF%]</cUF>
<xServ>STATUS</xServ>
</consStatServ>
</nfeDadosMsg>
</soap12:Body>
</soap12:Envelope>
]
sEnvelopE_soap=Replace(sEnvelopE_soap,CR,"")
EDT_ENVELOPE_SOAP_ENVIADO=sEnvelopE_soap
HTTPCertificate(gs_certificado_thumprint_impressao)
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName

bMensagem is boolean=HTTPRequest(s_web_service,"","",sEnvelopE_soap,"text/xml;charset=UTF-8","","")

HTTPCertificate("")

IF bMensagem=False THEN
Error(ErrorInfo(errFullDetails))
Error(ErrorInfo(errMessage))
ELSE
// vamos pegar o retorno
EDT_RETORNO_SOAP=HTTPGetResult(httpResult)
EDT_retorno_xml=XMLExtractString(EDT_RETORNO_SOAP,"nfeResultMsg")
EDT_TpAmb = XMLExtractString(EDT_retorno_xml,"tpAmb")
EDT_Cstat = XMLExtractString(EDT_retorno_xml,"cStat")
EDT_Xmotivo = XMLExtractString(EDT_retorno_xml,"xMotivo")
// nesse momento ja temos o xml de retorno
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

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















Teste

Teste
teste