Note that there are some explanatory texts on larger screens.

plurals
  1. POPHP client soap request. How to formate request array with inherited object container inside
    text
    copied!<p>I'm creating soap request with PHP (SoapClient class), but stuck with finding solution how to create Person object and add it to InsuredObjects list. Person inherits InsuredObject.</p> <p>Original WSDL scheme:</p> <pre><code>&lt;VoyageRequestOfCalculateArgs&gt; &lt;MethodName&gt;Calculate&lt;/MethodName&gt; &lt;Password&gt;0000000000000&lt;/Password&gt; &lt;RequestData&gt; &lt;a:AgentId&gt;9999&lt;/a:AgentId&gt; &lt;a:SessionKey&gt;999999999999999999&lt;/a:SessionKey&gt; &lt;a:Contract i:type="b:Voyage"&gt; &lt;startDate&gt;2013-09-14T23:59:59+02:00&lt;/startDate&gt; &lt;endDate&gt;2013-09-14T23:59:59+02:00&lt;/endDate&gt; &lt;b:type&gt;Individual&lt;/b:type&gt; &lt;b:variant&gt;Standard&lt;/b:variant&gt; &lt;insuredObjects&gt; &lt;InsuredObject i:type="b:Person"&gt; &lt;b:address i:nil="true"/&gt; &lt;b:isOwner&gt;false&lt;/b:isOwner&gt; &lt;b:ageGroup&gt;AdultBetween4And64&lt;/b:ageGroup&gt; &lt;b:birthDate&gt;0001-01-01T00:00:00&lt;/b:birthDate&gt; &lt;b:firstName i:nil="true"/&gt; &lt;b:idNumber i:nil="true"/&gt; ... &lt;errors/&gt; &lt;Risks&gt; &lt;Risk i:type="c:RiskAssistance"&gt; &lt;basicRate&gt;0&lt;/basicRate&gt; ... &lt;c:type&gt;LCVASS&lt;/c:type&gt; &lt;/Risk&gt; &lt;/Risks&gt; &lt;/InsuredObject&gt; &lt;/insuredObjects&gt; &lt;/Contract&gt; </code></pre> <p>...</p> <p>Here is my request array:</p> <pre><code>$request = array( 'request' =&gt; array( "MethodName" =&gt; "Calculate", "RequestData" =&gt; array( 'AgentId' =&gt; $this-&gt;config['username'], 'SessionKey' =&gt; $sessionKey, 'Contract' =&gt; array( 'startDate' =&gt; $startDate, 'endDate' =&gt; $endDate, 'type' =&gt; 'Individual', 'variant' =&gt; 'Standard', 'country' =&gt; array( ... ), 'insuredObjects' =&gt; array( //----------------------------------- //Here should be added person object. //----------------------------------- array( 'errors' =&gt; '', 'risks' =&gt; array( 'type' =&gt; 'LCVKLS' ), 'ageGroup' =&gt; 'AdultBetween4And64', 'isForeigner' =&gt; false, ... ) ) ) ) ) ); $result = $this-&gt;client-&gt;Calculate($request); </code></pre> <p>My <code>request($this-&gt;client-&gt;__getLastRequest())</code> looks like: ...</p> <blockquote> <pre><code>&lt;SOAP-ENV:Body&gt; &lt;ns5:Calculate&gt; &lt;ns5:request&gt; &lt;ns1:MethodName&gt;Calculate&lt;/ns1:MethodName&gt; &lt;ns1:RequestData&gt; &lt;ns2:AgentId&gt;9999&lt;/ns2:AgentId&gt; &lt;ns2:SessionKey&gt;999999999999999999&lt;/ns2:SessionKey&gt; &lt;ns2:Contract&gt; &lt;ns3:endDate&gt;2013-09-19&lt;/ns3:endDate&gt; &lt;ns3:insuredObjects&gt; &lt;ns3:InsuredObject&gt; &lt;ns3:errors/&gt; &lt;ns3:risks/&gt; &lt;/ns3:InsuredObject&gt; &lt;/ns3:insuredObjects&gt; &lt;ns3:startDate&gt;2013-09-07&lt;/ns3:startDate&gt; &lt;ns4:country&gt; &lt;ns4:Code&gt;EU&lt;/ns4:Code&gt; &lt;ns4:Id&gt;132&lt;/ns4:Id&gt; &lt;ns4:IsVoyage30Range&gt;true&lt;/ns4:IsVoyage30Range&gt; &lt;ns4:Name&gt;Europa&lt;/ns4:Name&gt; &lt;/ns4:country&gt; &lt;ns4:type&gt;Individual&lt;/ns4:type&gt; &lt;ns4:variant&gt;Standard&lt;/ns4:variant&gt; &lt;/ns2:Contract&gt; &lt;/ns1:RequestData&gt; &lt;/ns5:request&gt; &lt;/ns5:Calculate&gt; &lt;/SOAP-ENV:Body&gt; </code></pre> </blockquote> <p>...</p> <p>Response error:</p> <p><code>Unable to cast object of type 'Company.Common.BusinessObjects.InsuredObject' to type 'Company.VoyageService.BusinessObjects.Person'.</code></p> <p>The same problem with passing property to <code>'risks' =&gt; 'type' =&gt; 'LCVKLS'</code></p> <p>I hope you will help me to find the issue.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload