6
votes

PHP SOAP Impossible de se connecter à une source SSL WSDL

essayer de créer une connexion de savon à une source HTTPS: // Source WSDL via PHP / Win32, mais continuez à obtenir l'erreur:

AVERTISSEMENT: SOAPCLIENT :: SOAPCLIENT () [SOAPCLIENT.SOAPCLIENT]: E / S AVERTISSEMENT : Impossible de charger une entité externe "https: // ...

Si j'essaie de sauvegarder le WSDL localement et d'y accéder, le SOAPFault-> Défaut Propriété a le message "Support SSL n'est pas disponible dans cette version".

Après que certaines googles, on dirait que PHP SOAP ne peut pas se connecter à une source HTTPS. Http est ok, cependant.

Y a-t-il une solution de contournement pour cela? Ou existe-t-il une version de savon alternative / module que je peux installer?


1 commentaires

Résolu! J'ai dû installer le module PHP "php_openssl" pour que cela fonctionne. Il suffit d'activer le .dll dans php.ini. Merci!


3 Réponses :


0
votes

J'ai eu le succès avec SSL et SOAP en utilisant NUSOAP:

http://nusoap.sourceforge.net/


0 commentaires

1
votes

J'ai eu le même problème. OpenSSL, CURL a été activé, initié un savacclient avec une option d'emplacement à la certification stockée, etc., etc. a tout essayé.

s'avère que cela fonctionne en mode CLI. Ainsi php_sapi = cli. Comme nous exécutons presque toujours nos appels WebServices en tant que cronjob, tâche planifiée sous Windows, ce n'est pas vraiment une mauvaise chose. J'étais vraiment content de le faire fonctionner!

mise à jour: OK, s'avère lorsque PHP fonctionne comme un module Apache, il utilise les bibliothèques OpenSll requises obligatoires libey32.dll et ssleay32.dll à partir de l'installation Apache. Lorsque vous utilisez PHP dans CLI, utilise les bibliothèques du répertoire PHP / Installation. Écraser les 2 dlls Apache avec les DLL du répertoire PHP ont fait l'affaire. Il fonctionne maintenant également sous Apache. Donc, votre version PHP doit correspondre aux DLL de travail pour la version spécifique. Quand cela ne fonctionne toujours pas dans l'interface Web. Veuillez vérifier que Apache ne loge pas ces DLL à partir d'un répertoire système Windows, spécifiée précédemment dans le chemin défini sur votre système, qui est ramassé par Apache.


0 commentaires

15
votes

Support https pour le savon dans PHP5

Si vous voyez des messages d'erreur sur des emballages HTTPS manquants lorsque vous essayez d'utiliser SOAP ("Impossible de trouver le wrapper" https "- Avez-vous oublié de l'activer lorsque vous avez configuré PHP?" ou "[http] SSL support est Non disponible dans cette version "), vous n'avez pas installé les bibliothèques SSL pour prendre en charge les transactions sécurisées.

  1. Détermination Extension = php_soap.dll dans votre php.ini

  2. Détermination Extension = php_openssl.dll dans votre php.ini

  3. copie ssleay32.dll et liboyy32.dll à votre répertoire Windows System32

  4. Reboot Apache, et voila!

    J'ai initialement trouvé cette réponse à: http://webponce.com/rants/2008/04/https-support-for-soap-in-php5-und-windows/


3 commentaires

J'ai battu ma tête contre le mur. J'ai finalement trouvé cela, et ça a fonctionné, merci.


Oui, les étapes 2 et 4 sont suffisantes, du moins dans la sortie actuelle de XAMPP!


Pour Linux, que faire?