2009-04-08 8 views
0

Je suis en train d'utiliser un webservice qui ne permet que la demande SOAPDéfinir les attributs pour les paramètres de demande SOAP PHP

pour autant que je sais que je dois créer une demande qui ressemble à ceci

<?xml version="1.0" encoding="utf-8"?> 
<SessionCreateRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <POS> 
    <Source PseudoCityCode="SECRET_CODE" /> 
    </POS> 
</SessionCreateRQ> 

cependant tout en ajoutant le paramètre à la méthode SessionCreateRQ Je ne sais pas comment ajouter le paramètre POS appelé Source et ont aucune idée sur la façon de définir l'attribut pour ce paramètre

im essayant les suivantes en php

$body = array(
     'POS' => array('source' => 'PseudoCityCode:SECRET_CODE')); 

    try 
    { 
     $result = $c->SessionCreateRQ($body); 
    } 

mais pas de chance, est-ce que quelqu'un a une idée sur la façon dont je devrais construire cet appel correctement?

merci!

+0

Il ne répond pas directement à la question que vous posiez, mais PHP a built-in functions for handling SOAP, à la fois du point de vue d'un serveur et d'un client. Vous devriez être capable de trouver ce dont vous avez besoin dans les fonctions SoapClient. –

Répondre

1

Premièrement, vous avez besoin de la définition WSDL pour ce service (en ligne ou dans un fichier local). Tout service SOAP non incorrect fournit le WSDL aux utilisateurs.

Deuxièmement, vous devez traduire la définition du service WSDL en code PHP. Essayez le générateur wsdl2php. Son générer des fichiers avec des classes, que faire des appels à des services Web.

Votre exemple sera approximativement comme suit:

require_once 'GeneratedTypes.php'; 
$client = new SOAPService(); 
$res = $client->SessionCreateRQ(SECRET_CODE); 

P.S. wsdl2php pas idéal mais ça marche :)

Questions connexes