Foros del Web » Programando para Internet » PHP » Configuración PHP »

Erro con soap "Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR...

Estas en el tema de Erro con soap "Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR... en el foro de Configuración PHP en Foros del Web. El codigo esta bien, porque desde otro servidor funciona perfecto. Por otra parte en el actual servidor el soap, funciona pero para url "http", pero ...
  #1 (permalink)  
Antiguo 22/10/2011, 23:26
 
Fecha de Ingreso: mayo-2007
Mensajes: 149
Antigüedad: 17 años, 6 meses
Puntos: 1
Erro con soap "Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR...

El codigo esta bien, porque desde otro servidor funciona perfecto. Por otra parte en el actual servidor el soap, funciona pero para url "http", pero cuando se usa "https" la conexion segura me genera el error, yo tengo php 5.2.17

http://www.tecnosystemoriente.com/orden-pago-wsdl.php web con error
http://www.tecnosystemoriente.com/test.php php info

Gracias.-
  #2 (permalink)  
Antiguo 23/10/2011, 13:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Erro con soap "Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERRO

¿Cuál es el código?

Edito:

También traté la dirección que colocas en el enlace y me dió problemas al cargarla, ¿como resolví? Usé file_get_contents para obtener los datos. Primero debes crear un archivo e indicarle solo esto
Código PHP:
Ver original
  1. <?php
Buscas la parte que dice Registered PHP Streams y debe decir https. Si no aparece debes activar el SSL. Para window una forma como muchos mencionan que resolvieron un problema que tiene file_get_contents con url seguras es primero verificando si existe el dll php_openssl.dll y descomendando en el php.ini la extensión. Cuando ya en Registered PHP Streams aparezca https, solo es cuestión de añadir un archivo que tenga
Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/xml; charset=iso-8859-1');
  3. echo file_get_contents('https://esitef-homologacao.softwareexpress.com.br/e-sitef/Payment2?wsdl');

Y luego en el archivo que verifica el Soap solo tienes que hacer algo como
Código PHP:
Ver original
  1. <?php
  2. $soap = new SoapClient('http://localhost/archivoConFileGetContents.php');
  3. var_dump($soap->__getFunctions());
Y me muestra algo como
Cita:

array(5) {
[0]=>
string(77) "beginTransactionResponse beginTransaction(beginTransaction $beginTransaction)"
[1]=>
string(69) "confirmPaymentResponse confirmPayment(confirmPayment $confirmPayment)"
[2]=>
string(65) "doHashPaymentResponse doHashPayment(doHashPayment $doHashPayment)"
[3]=>
string(49) "doPaymentResponse doPayment(doPayment $doPayment)"
[4]=>
string(49) "getStatusResponse getStatus(getStatus $getStatus)"
}
De ahí puedes continuar con lo demás...

Nota: No tienes que usar file_get_contents, puedes usar cURL, un ejemplo sencillo sería algo como
Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/xml; charset=iso-8859-1');
  3. $request = curl_init();
  4. (
  5.     CURLOPT_URL => 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/Payment2?wsdl',
  6.     CURLOPT_RETURNTRANSFER => true,
  7.     CURLOPT_SSL_VERIFYPEER => false
  8. ));
  9. $response = curl_exec($request);
  10. curl_close($request);
  11. echo $response;
Si te da problemas cURL, entonces debes indicar un archivo que tenga los certificados en ese caso este código te debería servir
Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/xml; charset=iso-8859-1');
  3. $request = curl_init();
  4. (
  5.     CURLOPT_URL => 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/Payment2?wsdl',
  6.     CURLOPT_RETURNTRANSFER => true,
  7.     CURLOPT_SSL_VERIFYPEER => true,
  8.     CURLOPT_CAINFO => 'cacert.pem',
  9. ));
  10. $response = curl_exec($request);
  11. curl_close($request);
  12. echo $response;
El archivo cacert.pem lo debes guardar en el mismo lugar o si quieres guardarlo en otro lugar lo importante es que le digas la dirección completa en CURLOPT_CAINFO. Para conseguir el archivo cacert.pem puedes hacerlo en http://curl.haxx.se/docs/caextract.html
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 23/10/2011 a las 14:52

Etiquetas: erro, exception, fatal, php, soap, wsdl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:05.