Se debe acceder al método ZEND SOAP a través de SSL

Tengo un certificado SSL en mi sitio. Lo instaló mi proveedor de alojamiento y he probado que se instaló correctamente. Estoy tratando de consumir un servicio web SOAP de mindbodyonline.com/api y recibo este mensaje en la respuesta

Se debe acceder a este método a través de SSL (HTTPS).

Estoy usando Soap Client de Zend Framework y ha estado funcionando para la mayoría de los servicios, pero este en particular contiene información de la tarjeta de crédito y probablemente por eso necesita la conexión segura. No he podido encontrar ninguna información sobre cómo enviar mi solicitud SOAP de forma segura. Estoy creando el cliente usando el siguiente código.

$client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL', array("soap_version"=>SOAP_1_1));

alguien capaz de ayudar?

preguntado el 12 de junio de 12 a las 18:06

Si crea un archivo phpinfo con <?php phpinfo() ?> en ella, se nota que tienes https disponible bajo Registered PHP Streams y/o ssl/tls bajo Registered Stream Socket Transports. Me pregunto si está recurriendo al uso de http porque no tiene Openssl integrado en PHP. -

Sí, veo https, ssl y tls allí -

Ok, parece que no tengo la extensión SOAP instalada en mi máquina, voy a agregarla de vez en cuando puedo verificar si recibo el mismo error. -

¡Gracias! Estuve examinando los resultados de Google todo el día.

Ok, tengo jabón configurado; cuando hice una solicitud, falló, pero la falla estaba en el lado del servidor remoto, así que supongo que no me encontré con el mismo problema. ¿Puedes publicar un código más específico que pueda probar? Hice: $client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL', array("soap_version"=>SOAP_1_1)); $client->GetClients(); y el resultado fue Server was unable to process request. ---> System.NullReferenceException: at mb.API._0_5.ClientService.GetClients() in \ClientService.asmx.cs:line 837. Probablemente paso malos datos. -

1 Respuestas

El WSDL especifica todos los puntos finales como http, no https. Así que tuve que cambiar el punto final en el constructor Zend_Soap_Client. Los documentos de Zend_Soap_Client http://framework.zend.com/manual/en/zend.soap.client.html dicen que la opcion de ubicacion no funciona en modo WSDL pero estan mal. Agregar la opción de ubicación anula el punto final especificado en el WSDL. Lo hice funcionar usando este código

$client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL', array("soap_version"=>SOAP_1_1,'location'=>'https://api.mindbodyonline.com/0_5/ClientService.asmx'));

¡Gracias a drew010 por su ayuda!

Respondido el 12 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.