Search the Community
Showing results for tags 'soap'.
Found 5 results
-
Boa noite. Pessoal, mais uma vez aqui pedindo uma ajuda.Estou tentando enviar uma NFSe via SOAP.Estou recebendo o seguinte erro:Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] ERRO : cvc-complex-type.4: Attribute 'Algorithm' must appear on element 'ns2:CanonicalizationMethod'. inO meu Array está da seguinte forma:Array([CanonicalizationMethod] => Array([@attributes] => Array([Algorithm] => http://www.w3.org/TR/2001/REC-xml-c14n-20010315)) Não entendi o porque desse erro, alguém sabe ajudar?
-
Alguma alma caridosa que me possa ajudar ? há dias que ando com este problema e não consigo resolver. Ficaria eternamente grato se alguém pudesse ajudar o codigo abaixo em localhost funciona na perfeição , mas em produção , no lado do servidor , nada... HTTP error 500. o pedido que estou a fazer está noutro dominio com porta 81 e no meu dominio uso certificado de segurança. Será por aí? de qualquer forma o wsdl está aqui: $client = new SoapClient('https://dekrainspecoes.pt/acp/PROD_CustomUI_ACP_Member_Validation_WS.WSDL'); $result = $client->QueryByNumCartao(array('N_Cartao' => "705684011673122085")); if (!empty($result->QueryByNumCartao_Output->Cartao_Ativo)) { echo 'The userId : '.$result->QueryByNumCartao_Output ->Pessoa_ID; } $JSON = json_encode($result);
-
- webservice
- php
-
(and 1 more)
Tagged with:
-
object(SoapFault) ao consumir webservice soap-wsdl com certificado digital
peterhall posted a topic in PHP
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? -
Bom dia caros amigos, estou precisando fazer uma consulta em um WS da Receita Federal mas estou me batendo com algumas dúvidas. Instalei o certificado que eles me passaram na minha máquina e pelo navegador quando colo a URL do WS ele mostra tudo correto os tipos de consultas e tal, meu problema está no desenvolvimento do client para fazer essa consulta, eu preciso instalar algum Certificado localmente? E como devo fazer a conexão da minha aplicação com esse WS? Estou tentando assim: <?php require("biblioteca/nusoap.php"); $wsdl = "https://acesso.infoconv.receita.fazenda.gov.br/ws/cpf/ConsultarCPF.asmx?wsdl"; $formaBusca = "listarEmpPorCPF"; $ListaDeCPF = "12345678910"; $CPFUsuario = "12345678910"; $sslcertfile = 'certificado.pem'; $sslkeyfile = 'key.pem'; $passphrase = 'senha'; $param = array('CPFUsuario' => $CPFUsuario, 'ListaDeCPF' => $ListaDeCPF); $soap = new nusoap_client($wsdl, 'wsdl'); $soap->setCredentials("", "", 'certificate', array( 'sslcertfile' => $sslcertfile, 'sslkeyfile' => $sslkeyfile, 'passphrase' => $passphrase, 'verifypeer' => 0, 'verifyhost' => 0 ) ); if($err = $soap->getError()) { die('Error: '.$err); } $result = $soap->call($formaBusca, array('parameters' => $param), '', '', false, true); if($soap->fault) { echo 'Fault! <pre>'; var_dump($result); echo '</pre>'; } else { if($err = $soap->getError()) { die('Error: '.$err); } else { echo '<pre>'; var_dump($result); die('</pre>'); } } ?> E está me dando o seguinte erro: Error: wsdl error: Getting https://acesso.infoconv.receita.fazenda.gov.br/ws/cpf/ConsultarCPF.asmx?wsdl - HTTP ERROR: cURL ERROR: 58: could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)
-
Conexão site prefeitura ISS com PHP + cURL + SOAP + XML + certificado digital
AnthraxisBR posted a question in Perguntas e respostas rápidas
A prefeitura oferece um ótimo suporte (sarcasmo) a webservice fornecida, e graças a isso estou perdido a muito tempo no que deveria ser um negócio muito simples. http://isscuritiba.curitiba.pr.gov.br/ Com o código abaixo eu faço login no webservice do ISS de curitiba, consigo enviar a requisição xml com sucesso e receber o retorno do webservice, porém, não consigo identificar no servidor/documentação quais são os campos obrigatórios pra trazer dados, e nem quais são os formatos dos campos, a minha resposta é que os dados enviados sempre estão inválidos. <?php $xml_data = '<?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> <ConsultarNfse xmlns="http://www.e-governeapps2.com.br/"> <ConsultarNfseEnvio> <Prestador> <Cnpj>string</Cnpj> <InscricaoMunicipal>string</InscricaoMunicipal> </Prestador> </ConsultarNfseEnvio> </ConsultarNfse> </soap:Body> </soap:Envelope>'; $url = "https://pilotoisscuritiba.curitiba.pr.gov.br/nfse_ws/NfseWs.asmx?WSDL"; $headers = array( "POST /nfse_ws/nfsews.asmx HTTP/1.1", "Host: pilotoisscuritiba.curitiba.pr.gov.br", "Content-Type: text/xml; charset=utf-8", "SOAPAction: \"http://www.e-governeapps2.com.br/ConsultarNfse\"", "Content-length: " . strlen($xml_data) ); $xml = $xml_data; $ch = curl_init(); $soapUser = "username"; // username $soapPassword = "123456"; // password curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_CAINFO, getcwd() . '\Pre_ISS_Cert.pem'); curl_setopt($ch, CURLOPT_URL, "$url"); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_SSH_PRIVATE_KEYFILE, getcwd() . '\Pref_ISS_Cert.pfx'); curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . '\Pre_ISS_Cert.pem'); curl_setopt($ch, CURLOPT_SSLCERTPASSWD, "easy2017"); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_REFERER, "$url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $ch_result = curl_exec($ch); print_r($ch_result); curl_close($ch); ?> Alguma ideia do que fazer nessa situação sabendo que não adianta ligar pro lugar que fornece o serviço?