Preciso consumir um web service soap (wsdl) com certificado digital mas não estou a conseguir.
Testei através do SoapUI e resultou sem erros, mas na hora de aplicar num script de php, não estou a conseguir que funcione.
O que fiz até ao momento: converti o certificado digital de .pfx para .pem com chave privada incluída e procurei executar o script com os parâmetros de conexão e xsd de saída.
Na documentação consta este xsd de saída:
A resposta, se com erro, deverá ser:
Resposta sem erro:
O meu script:
<?php
date_default_timezone_set("America/Fortaleza");
$time = new DateTime;
$data = $time->format(DateTime::ATOM);
$wsdl = 'https://selodigital.tjce.jus.br/wsselodigital-homologacao/SolicitacaoSelo?wsdl';
$endpoint = 'https://selodigital.tjce.jus.br/wsselodigital-homologacao/SolicitacaoSelo';
$certificate = "certificado.pem";
$password = 'senha';
$options = array(
'location' => $endpoint,
'keep_alive' => true,
'trace' => true,
'local_cert' => $certificate,
'passphrase' => $password,
'cache_wsdl' => WSDL_CACHE_NONE,
array('versao' => '1.12',
'dataHora' => $data,
'ambiente' => '2',
'codigoServentia' => '000123',
'nomePessoa' => 'Nome de Teste',
'tipoDocumento' => '1',
'idSolicitacaoSelo' => '1',
'sequencial' => '1',
'codigo' => '6',
'quantidade' => '10'
)
);
try {
$soapClient = new SoapClient($wsdl, $options);
} catch(Exception $e) {
var_dump($e);
}
O erro que tenho recebido:
Onde estarei errando?