0

The WSDL requires the following parameters:

<soapenv:Body>
  <cai3:Set> 
    <cai3:MOId>
            <gsm:param1>?</gsm:param1>
    </cai3:MOId>
    <cai3:MOAttributes>
      <gsm:setSubscription a="?">
        <gsm:custId>?</gsm:custId>
      </gsm:setSubscription>
    </cai3:MOAttributes>
  </cai3:Set>
</soapenv:Body>

Using this simple SOAP client call:

$params  = array(
        'MOId' => array
        (
          'param1' => "test1",
        ),
        'MOAttributes' => array 
        (
           'setSubscription a=123' => array 
            (
              'custId' => '123456'
            )
        )
);

$client = new SoapClient
        ($wsdl, 
        array(
            'location' => "http://$ip:8080/services/CAI3G1.2",
            'uri'      => "http://$ip:8080/services/CAI3G1.2",
            'exceptions' => true,
            'cache_wsdl' => WSDL_CACHE_NONE,   
            'connection_timeout' => 5,
            'trace'    => 1,
            'encoding'=>' UTF-8'
    ));    
try {
  $response = $client->Set($params);
} catch(Exception $e){
  if ($debug) print_r($e);
  return $e;
}

this is the following error:

[faultstring] => SOAP-ERROR: Encoding: object has no 'setSubscription' property

it seems like the white space in the XML parameter 'setSubscription a=123' is not accepted by the WSDL, is there an encoding issue here?

NOTE: if I put the same request on soapUI client, it works fine, here is my SOAPUI request XML:

  <soapenv:Body>
      <cai3:Set>
         <cai3:MOId>
            <gsm:param1>test1</gsm:param1>
         </cai3:MOId>
         <cai3:MOAttributes>
            <gsm:setSubscription a="123">
               <gsm:custId>123456</gsm:custId>
            </gsm:setSubscription>
         </cai3:MOAttributes>
      </cai3:Set>
   </soapenv:Body>




  
0

1 Answer 1

1

You cannot stuff the attribute (a="123") into the array itself

To bind the attribute use,

'MOAttributes' => [
  'gsm:setSubscription' => [
    '@attributes' => [
      'a' => '123',
    ],
    'gsm:custId' => '123456',
  ],
],
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.