Salut tout le monde...

Bon, pour mon taf je dois utiliser un web service via un appel curl... et bien entendu traiter la réponse... c'est un truc bancaire qui crêche aux USA, et l'assistance est UNIQUEMENT par téléphone... payant en plus..

Mais j'ai un gros soucis...
habituellement j'utilise des method soap standard... ou des méthodes CURL standard avec des retours que je parse facilement.

Là c'est la première fois que j'appelle en curl et que je reçois un envelope Soap.

Du coup je me dit tiens on va faire simple : un simplexml_load_string et le tour est joué Smiley lol et ben non Smiley decu

Alors voilà la réponse

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><fdggwsapi:FDGGWSApiOrderResponse xmlns:fdggwsapi="http://secure.linkpt.net/fdggwsapi/schemas_us/fdggwsapi"><fdggwsapi:CommercialServiceProvider/><fdggwsapi:TransactionTime>Mon Jun 18 17:49:59 2012</fdggwsapi:TransactionTime><fdggwsapi:TransactionID/><fdggwsapi: ProcessorReferenceNumber/><fdggwsapi: ProcessorResponseMessage/><fdggwsapi:ErrorMessage>SGS-005005: Duplicate transaction.</fdggwsapi:ErrorMessage><fdggwsapi:OrderId>A-05c61577-83d6-432e-a870-332d604e36a4</fdggwsapi:OrderId><fdggwsapi:ApprovalCode/><fdggwsapi:AVSResponse/><fdggwsapi:TDate/><fdggwsapi:TransactionResult>FRAUD</fdggwsapi:TransactionResult><fdggwsapi: ProcessorResponseCode/><fdggwsapi: ProcessorApprovalCode/><fdggwsapi:CalculatedTax/><fdggwsapi:CalculatedShipping/><fdggwsapi:TransactionScore/><fdggwsapi:FraudAction/><fdggwsapi:AuthenticationResponseCode/></fdggwsapi:FDGGWSApiOrderResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
(NB: j'ai ajouté un espace entre chaque : P pour éviter que ça se transforme en smiley, normalement pas d'espace)

Mais je récupère rien Smiley decu


$resultat = curl_exec( $ch );
$res = simplexml_load_string($resultat);


Mon curl est bon puisque j'ai bien le retour

et voilà ce que j'obtiens au print_r de $res

SimpleXMLElement Object
(
)

UN TRUC VIDE :'(

HELP !!

merci
Modifié par pchlj (18 Jun 2012 - 23:59)
Bon bah j'ai trouvé :d

voici le moyen de traiter ma réponse...

Ca me fait des array, mais c'est mieux que rien

$parser= xml_parser_create('utf-8');
			$xml=xml_parse_into_struct($parser,$resultat,$vals,$index);


Je laisse ouvert des fois que quelqu'un saurait faire un object Smiley smile
Salut,

Je complète ton post avec ma solution :


$xml = simplexml_load_string($resultSoap, NULL, NULL, "http://schemas.xmlsoap.org/soap/envelope/");
// Dans le cas d'un résultat multiple
foreach($xml->xpath('//ValeurARechercher') as $response){
    echo utf8_decode($response->asXml());
}
// Dans le cas d'un résultat simple
$response = $xml->xpath('//ValeurARechercher');
echo $response[0]->val1;
echo $response[0]->val2;


++