Web services Soap et xml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Web services Soap et xml

Re: Web services Soap et xml

par moogli » 15 mars 2017, 12:30

salut,

il est préférable de créer un sujet avec ton soucis et ton code a toi.
Parce que la le sujet est vieux et non adapté a ton code ;)

@+

Re: Web services Soap et xml

par hercule29 » 15 mars 2017, 11:24

Pardon de déterrer ce post, aussi 1 an après, mais j'ai le même soucis, quelqu'un a t'il trouvé une réponse ?

Re: Web services Soap et xml

par aurelieng » 08 avr. 2016, 14:00

Bonjour,

Désolé de réveiller ce post quasiment 1 an après mais vu que je rencontre le même souci je me dis que tu pourrais peut-être m'aider Tipher si tu t'es débloqué entre-temps

merci par avance pour ton feedback
Aurélien

Re: Web services Soap et xml

par tipher » 04 mai 2015, 15:05

Bonjour
Oui merci une faute de frappe
Mais j'ai toujours ce message :
message: SOAP-ERROR: Encoding: object has no 'productCode' property

Re: Web services Soap et xml

par @rthur » 04 mai 2015, 14:58

Bonjour,

A première vu, je dirai que tu as un problème de guillemet avant "4 rue de la paix"

Web services Soap et xml

par tipher » 04 mai 2015, 14:50

Bonjour, a tous
Je suis face a un problème depuis quelques jours
J'utilise un web service je dois lui envoyer une requête soap afin que celui-ci me retourne un xml avec un lien de téléchargement d'un fichier pdf
Cependant avec le code que j'ai écrit l'url du lien de téléchargement s'affiche mais il se retrouve dans __getLastResponse, parmis des erreurs.

Si je supprime les lignes

Code : Tout sélectionner

} catch (SoapFault $exception) { echo '<br>erreur, trace: '.$exception->getTraceAsString(); echo '<br>message: '. $exception->getMessage(); // Affiche ce qui est reçu.. echo $client->__getLastResponse(); die (); }


Le lien ne s'affiche plus

Et j'ai cette erreur qui s'affiche tout le temps

Code : Tout sélectionner

erreur, trace: #0 C:\wamp\www\etiquette2.php(41): SoapClient->__call('generateLabel', Array) #1 C:\wamp\www\etiquette2.php(41): SoapClient->generateLabel(Array) #2 {main} message: looks like we got no XML document-


code de mon client

Code : Tout sélectionner

<?php include('dump.php'); // première étape : désactiver le cache lors de la phase de test ini_set('soap.wsdl_cache_enabled', '0'); //On doit passer le fichier WSDL du Service en paramètre de l'objet SoapClient $wsdlPath = 'https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl'; try { $client = new SoapClient($wsdlPath, array('trace' => true, 'exceptions' => true)); // bloc format attendu par generateLabel - PDF_A4_300dpi $format = array('outputPrintingType' => 'PDF_A4_300dpi'); // Liste des sous-blocs attendues par Letter - Retour Colissimo - International CORI $service = array('productCode' => 'CORE', 'depositDate' => '2015-12-23'); $parcel = array('weight' => '1.0' ); // bloc : coordonnées de l'expediteur $addressexp = array('lastName' => 'nom', 'firstName' => 'prenom', 'line2' => ' 1 rue du bellay', 'countryCode' => 'FR', 'city' => 'ville', 'zipCode' => '95000'); // bloc : coordonnées du destinataire $addressdest = array('companyName' => 'Compan', 'lastName' => 'nom', 'firstName' => 'prenom','line2' => '4 rue de la paix', 'countryCode' => 'FR', 'city' => 'Paris', 'zipCode' => '000'); $senders = array('address' => $addressexp); $addressee = array('addresseeParcelRef' => '12345', 'codeBarForReference' => 'true', 'serviceInfo' => 'service info', 'address' => $addressdest); $letter = array('service' => $service , 'parcel' => $parcel, 'sender' => $senders , 'addressee' => $addressee); $pars = array('contractNumber' => 'XXXXX', 'password' => 'XXXXX', outputFormat' => $format, 'letter' => $letter); $response = $client->generateLabel(array('generateLabelRequest' => $pars)); } catch (SoapFault $exception) { echo '<br>erreur, trace: '.$exception->getTraceAsString(); echo '<br>message: '. $exception->getMessage(); // Affiche ce qui est reçu.. echo $client->__getLastResponse(); die (); } ?>


Alors j'ai essayé de passer du xml dans mon code :

Code : Tout sélectionner

<?php //On passe le fichier WSDL du service en paramètre de l'objet SoapClient $wsdlPath = 'https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl'; try { $client = new SoapClient($wsdlPath, array('trace' => true, 'exceptions' => true)); // bloc format attendu par generateLabel - PDF_A4_300dpi // $format = array('outputPrintingType' => 'PDF_A4_300dpi'); $xml = new XmlWriter(); $xml->openMemory(); $xml->startDocument('1.0', 'UTF-8'); $xml->startElement('letter'); $xml->startElement('service'); $xml->writeElement('productCode', 'CORE'); $xml->writeElement('depositDate', '2015-12-23'); $xml->endElement(); $xml->startElement('parcel'); $xml->writeElement('weight', '1.0'); $xml->endElement(); $xml->startElement('sender'); $xml->writeElement('lastName', 'nom'); $xml->writeElement('firstName', 'prenom'); $xml->writeElement('line2', '1 rue du bellay'); $xml->writeElement('countryCode', 'FR'); $xml->writeElement('city', 'ville'); $xml->writeElement('zipCode', '95000'); $xml->endElement(); $xml->startElement('addressee'); $xml->writeElement('adresseeParcelRef', '12345'); $xml->writeElement('codeBarForReference', 'true'); $xml->writeElement('serviceInfo', 'courrier'); $xml->startElement('address'); $xml->writeElement('companyName', 'entreprise'); $xml->writeElement('lastName', 'dupont'); $xml->writeElement('firstName', 'jean'); $xml->writeElement('line2', ''4 rue de la paix'); $xml->writeElement('countryCode', 'FR'); $xml->writeElement('city', 'paris'); $xml->writeElement('zipCode', '75000'); $xml->endElement(); $xml->endElement(); $xml->endElement(); // bloc format attendu par generateLabel - PDF_A4_300dpi $format = array('outputPrintingType' => 'PDF_A4_300dpi'); $letter = array('service' => $xml , 'parcel' => $xml, 'sender' => $xml , 'addressee' => $xml); $pars = array('contractNumber' => 'XXXXX', 'password' => 'XXXXX', 'outputFormat' => $format, 'letter' => $letter); $response = $client->generateLabel(array('generateLabelRequest' => $pars)); } catch (SoapFault $exception) { echo '<br>erreur, trace: '.$exception->getTraceAsString(); echo '<br>message: '. $exception->getMessage(); // Affiche ce qui est reçu.. echo $client->__getLastResponse(); die (); } ?>


Et maintenant j'ai cette erreur :
message: SOAP-ERROR: Encoding: object has no 'productCode' property