Como usar certificado digital já configurado no Protheus

Saudações, estou fazendo um programa que precisa buscar cte no sefaz, vou usar o mesmo certificado que já está configurado para emissão de notas, como faço para saber onde ele está gravado? Tem alguma classe ou função que já traz o certificado. Segue exemplo do código que tenho, se não for possível desta forma,qual seria outra forma?


    // abre o certificado
    Local cCaminho := "\conectar\certs\"  
    Local cNomCert := "certificado"
    Local cPwdCert := "senhacertificado"
    aCertif         := GetCert(cNomCert,cPwdCert,cCaminho,.T.)
    cSSLCACertFile     := aCertif[1][2]
    cSSLKeyFile        := aCertif[2][2]
    cSSLCertFile       := aCertif[3][2]    

    oWsdl := TWsdlManager():New()

    /* Certificados e Password */
    lSSLInsecure     := .t. 
    lVerbose        := .t.
    cSSLKeyPwd         := cPwdCert

    oWsdl:cSSLCACertFile     := cSSLCACertFile
    oWsdl:cSSLKeyFile        := cSSLKeyFile
    oWsdl:cSSLCertFile       := cSSLCertFile
    oWsdl:cSSLKeyPwd         := cSSLKeyPwd
    oWsdl:nSSLVersion        := 0
    oWsdl:nTimeout           := 120
    oWsdl:lSSLInsecure        := lSSLInsecure
    oWsdl:lVerbose            := lVerbose

    /* Conexao WSDL */
    cUrl := cnUrlWSDL("CTEDISTRIBUICAODFE")
    xRet := oWsdl:ParseURL(cUrl)

Encontrei o seguinte código:


        cArqIni := GetAdv97()
        cCertPem := GetPvProfString('SSLConfigure','CertificateClient','', cArqIni)
        cCertKey := GetPvProfString('SSLConfigure','KeyClient','', cArqIni)
        cCertPass := GetPvProfString('SSLConfigure','PassPhrase','', cArqIni)

Retorna dados do certificado, mas não retorna tudo que precisa para a classe TWsdlManager, já viram a função GetPvProfString? Será que em como rela retornar todos os dados necessário para conexão com TWsdlManager?

Como você precisa informar um arquivo .pem, imagino que o localizado no TSS sirva:

\Server\totvs$\protheus\TSS\certs\arquivo.pem

Desconheço alguma forma de obter esse certificado do TSS diretamente, pois, este certificado é enviado durante o processo de configuração inicial e fica gravado apenas nos diretórios do TSS. Depois disso o TSS utiliza o mesmo de forma interna, então você teria que copiar o certificado em uma pasta onde o Protheus tenha acesso.

Boa tarde Marco, beleza?

Cara utilizo uma chamada parecida aqui, e fiz dessa forma:

esse \000023_ca.pem está dentro da minha system

conecta sefaz.png

vê se isso resolve pra você!

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Bacana Gustavo, mas como este certificado chegou até a pasta system? Como você sabe de qual empresa é?

Marco, quando você informa o certificado no TSS, dentro da pasta certs ele cria esses três arquivos, o número é o ID da empresa se não me engano, então a cada empresa que vc configura um certificado ele faz essa numeração ai com esses 3 numeros, eu copiei os mesmos da pasta certs e coloquei na pasta system, aliás agora até me veio uma dúvida, não lembro se é na system ou se é na protheus data