Árvore de páginas

Define em memória as configurações para conexão SSL.

Sintaxe

HTTPSSLClient( < nSSL2 >, < nSSL3 >, < nTLS1 >, < cPassword >, < cCertPath >, < cKeyPath >, < nHSM >, [ lClient ], [ nVerbose ], [ nBugs ], [ nState ], [ cCACertPath ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nSSL2

numérico

Habilita/Desabilita SSL2.

X

 

nSSL3

numérico

Habilita/Desabilita SSL3.

X

 

nTLS1

numérico

Habilita/Desabilita TLS1.

X

 

cPassword

caractere

Senha para a chave privada e/ou certificado.

X

 

cCertPath

caractere

Indica o caminho do certificado de cliente.

X

 

cKeyPath

caractere

Indica o caminho da chave privada de cliente.

X

 

nHSM

numérico

Define se utiliza HSM.

 

 

lClient

lógico

Indica se a definição será para conexão pelo SmartClient.

  

nVerbose

numérico

Habilita/Desabilita Verbose.

  

nBugs

numérico

Habilita/Desabilita Bugs.

  

nState

numérico

Habilita/Desabilita State.

  

cCACertPath

caractere

Indica o caminho do certificado de CA.

  

Observações

Os parâmetros da função equivalem à configuração contida na seção SSLConfigure do arquivo ini do AppServer, sendo relacionados da seuinte forma:

Parâmetro

Chave da SSLConfigure

nSSL2

SSL2

nSSL3

SSL3

nTLS1

TLS1

cPassword

PassPhrase

cCertPath

CertificateClient

cKeyPath

KeyClient

nHSM

HSM

nVerbose

Verbose

nBugs

BUGS

nState

STATE

cCACertPath

SecondCertificateClient

  • Para definição no AppServer, o valor padrão dos parâmetros nHSM, nVerbose, nBugs, nState e cCACertPath seguem o padrão da configuração da seção SSLConfigure.
  • Caso nHSM seja 1, o formato aceito no caminho dos parâmetros cCertPath e cKeyPath é "slot_<num>-id_<idhex>" ou "slot_<nem>-label_<label>", onde <num> é o número do slot, igual ao retornado pela função HSMSlotList, e <idhex> é o id do objeto em hexadecimal, sendo cada 2 caracteres a representação hexadecimal de um caractere da tabela ASCII.
  • Para definição seja no AppServer, se nHSM for 0 e o caminho apontado por cCertPath, cKeyPath ou cCACertPath não for no AppServer, a aplicação dará uma exceção com a mensagem: "Only server path are allowed (HttpSSLClient)".
  • Para definição seja no SmartClient, se nHSM for 0 e o caminho apontado por cCertPath, cKeyPath ou cCACertPath não for no SmartClient, a aplicação dará uma exceção com a mensagem: "Only client path are allowed on client side (HttpSSLClient)".
  • O valor padrão de lClient é .F..
  • Os parâmetros lClient, nVerbose, nBugs, nState e cCACertPath estão disponíveis a partir da build 7.00.131227A com data de geração superior a 11/03/2016.

Exemplos

user function exemplo()
  
  Local cSlot     := "0"
  Local cModule   := 'C:\Program Files (x86)\Feitian\ePass2000_FT12\ngp11v211.dll' // Pronova
  Local cPass     := "12345678"
  Local idHex     := "80125761605040BE9A5D71B677387F67" // Katoen
  Local cUrl      := 'https://homologacao.nfe.fazenda.sp.gov.br:443/nfeWEB/services/NfeStatusServico.asmx'
  Local cSoapSend := '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/';
                     'XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="';
                     'http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><nfeStatusServicoNF xmlns="';
                     'http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico"><nfeCabecMsg><?xml version="1.0"';
                     ' encoding="UTF-8"?><cabecMsg xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.02">';
                     '<versaoDados>1.07</versaoDados></cabecMsg></nfeCabecMsg><nfeDadosMsg><?xml version="1.0"';
                     ' encoding="UTF-8"?><consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07">';
                     '<tpAmb>2</tpAmb><cUF>35</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg></nfeStatusServicoNF>';
                     '</soap:Body></soap:Envelope>'
  Local aHeadOut  := {'SOAPAction: http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico/nfeStatusServicoNF','Content-Type:';
                     'text/xml; charset=utf-8','User-Agent: Mozilla/4.0 (compatible; Protheus 7.00.100812P-20101227; ADVPL WSDL Client 1.101007)'}
  Local XMLHeadRet:= ""
  
  HTTPSSLClient(0, 1, 1, cPass, "slot_"+cSlot+"-id_"+idHex, "slot_"+cSlot+"-id_"+idHex, 1)
  HSMInitialize(cModule)
  
  XMLPostRet := HTTPSPost(cUrl, "", "", "", "", cSoapSend, 30, aHeadOut, @XMLHeadRet)
  if !Empty(XMLPostRet)
    conout("        1 - Comunicacao realizada com sucesso !!!")
    conout("[" + XMLPostRet + "]")
  else
    conout("        2 - Falha na  Comunicacao!!!")
  endif
  
return

Veja também

  • Sem rótulos