2012-03-26 2 views
0

J'ai ce code XML:php problème de savon au format xml

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Header> 
    <SessionIdHeader xmlns="http://www.inwise.com/webservices/v2"> 
     <SessionId>f554159f785d4793ab097470c7c76b2c</SessionId> 
     <EndSession>false</EndSession> 
    </SessionIdHeader> 
    </soap:Header> 
    <soap:Body> 
    <Send xmlns="http://www.inwise.com/webservices/v2"> 
     <source xsi:type="MobileMessageSendingSource"> 
     <Message> 
      <AccountId xsi:nil="true" /> 
      <Body>נסיון</Body> 
      <Bounces xsi:nil="true" /> 
      <Charset>unicode</Charset> 
      <CreateDate xsi:nil="true" /> 
      <EndDate xsi:nil="true" /> 
      <LastSent xsi:nil="true" /> 
      <Name>test for bt</Name> 
      <NonSent xsi:nil="true" /> 
      <Opens xsi:nil="true" /> 
      <RecipientType xsi:nil="true" /> 
      <Sender>8858</Sender> 
      <Sent xsi:nil="true" /> 
      <Status xsi:nil="true" /> 
      <TableConnectionId xsi:nil="true" /> 
      <Unsubscribes xsi:nil="true" /> 
      <UpdateDate xsi:nil="true" /> 
      <Validity>1440</Validity> 
     </Message> 
     </source> 
     <target xsi:type="NewRecipientSendingTarget"> 
     <Recipient> 
      <Id>0</Id> 
      <MobileNumber>972506471313</MobileNumber> 
     </Recipient> 
     </target> 
    </Send> 
    </soap:Body> 
</soap:Envelope> 

et voici ce que je vous envoie:

$paramsSend = array('Message' => 
      array('Body'=>'This is a test message', 
       'Name'=>'FromBlind', 
       'Sender'=>'7777', 
       'Charset' => 'unicode', 
       'Validity'=>'1440' 
       ), 
     array('Recipient' => 
       array(
        'MobileNumber'=>'7849386874' 
        ) 
       ) 
      ); 
    $x['SessionId'] = $SessionId; 
    $x['EndSession'] = 'true'; 
    $header = new SoapHeader('http://www.inwise.com/webservices/v2', 
         'SessionIdHeader', 
         $x); 
    $c->__setSoapHeaders($header); 
$res= $c->__soapCall($module, array($params)); 

mais on m'a dit que le fichier XML que je te l'envoie pas le même à leur XML, Je ne sais plus quoi faire, semble que tout va bien ....

un conseil?

+0

'$ paramsSend = array ('et' $ c -> __ soapCall ($ module, array ($ params)); 'pourquoi différents noms de tableaux? – Electronick

Répondre

0

Votre code ne crée pas de fichier XML comme celui affiché ci-dessus. Donc ce qui sort de la requête n'est pas dans le bon format.

En fait le XML que vous avez posté est un message SOAP d'invocation de l'opération Send où vous fournissez les paramètres Message et destinataire mais comme dit le ne respecte pas le format du message SOAP que vous avez posté. Par exemple, vous manquez de champ ... destinataire

Essayez de construire votre paramsSend comme ceci:

$paramsSend = array('source' => 
         array('Message' => 
           array('Body' => "body value", 
             'Name' => "name value") 
           ), 
       'target' => 
         array('Recipient' => 
           array('Id' => "id value", 
             'MobileNumber' => "mob numb value") 
           ) 
       ); 

Souvenez-vous d'ajouter les autres manquants balises pour un message (expéditeur, validité, etc.)

+0

Ouais je sais, Maintenant je reçois:" source ne peut pas être nul "mais j'ai pas d'idée comment envoyer la source ... – Hanan

+0

Bien quand vous construisez le message insérez un tableau "suorce" avant le tableau Message de cette façon Message est un élément de source de tableau et vous n'obtiendrez pas l'erreur ou. Notez aussi que vous devez construire une hiérarchie de tableaux appropriée pour correspondre à la partie cible-> recipinet du xml que vous avez posté –

+0

Je l'ai essayé 3 fois et 3 fois je reçois la même erreur, je pense que c'est parce que le 'xsi : type = "MobileMessageSendingSource" 'Je dois le configurer en quelque sorte .. – Hanan