Re: HELP !!!!! PHP SOAP Not building objects correctly
| From: | Nathan Nobbe | Date: | Fri, 16 May 2008 19:37:45 +0000 |
| Subject: | Re: HELP !!!!! PHP SOAP Not building objects correctly | ||
| References: | 1 | Groups: | php.general php.soap |
| Request: | Send a blank email to php-general+get-274444@lists.php.net to get a copy of this message | ||
On Fri, May 16, 2008 at 1:04 PM, Tim Traver <tt-list@simplenet.com> wrote:
> Hi all,
>
> sorry for the cross post to the general PHP list as well as the SOAP PHP
> list, but I'm a little bit desperate...
>
> Ok, for some reason when I am sending the proper objects to the __soapCall
> method, it is not including those objects in the XML call itself...
>
> I am using PHP 5.2.6 now after using 5.2.5 and thinking this may be fixed
> in an upgrade, but it is not...
>
> ok, here is a dump of the object I am sending the __soapCall method as an
> argument :
>
> [struct] => CreateCustomerPaymentProfile Object
> (
> [merchantAuthentication] => MerchantAuthenticationType Object
> (
> [name] => xxxxxxxxx
> [transactionKey] => xxxxxxxxxx
> )
> [customerProfileId] => 181854
> [paymentProfile] => CustomerPaymentProfileType Object
> (
> [payment] => PaymentSimpleType Object
> (
> [creditCard] => CreditCardType Object
> (
> [cardNumber] => XXXXXXXXXXXXXXXX
> [expirationDate] => XXXX-XX
> )
> )
> [customerType] => individual
> [billTo] => CustomerAddressType Object
> (
> [firstName] => Tim
> [lastName] => Traver
> )
> )
> [validationMode] => none
> )
>
> And here is the call that is generated :
> [__last_request] => <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
> http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns1="
> https://api.authorize.net/soap/v1/">
> <SOAP-ENV:Body>
> <ns1:CreateCustomerPaymentProfile>
> <ns1:merchantAuthentication>
> <ns1:name>xxxxxxxxxxxx</ns1:name>
> <ns1:transactionKey>xxxxxxxxxxxxxxxx</ns1:transactionKey>
> </ns1:merchantAuthentication>
> <ns1:customerProfileId>181854</ns1:customerProfileId>
> <ns1:paymentProfile>
> <ns1:customerType>individual</ns1:customerType>
> <ns1:billTo>
> <ns1:firstName>Tim</ns1:firstName>
> <ns1:lastName>Traver</ns1:lastName>
> </ns1:billTo>
> <ns1:payment/>
> </ns1:paymentProfile>
> <ns1:validationMode>none</ns1:validationMode>
> </ns1:CreateCustomerPaymentProfile>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> As you can see, all of the object variables are created correctly, except
> that the "payment" object is not. It is simply represented by <ns1:payment/>
> and has no start, and no variables that were sent in the object.
>
> This is very strange, and I can't figure out where to look to try and solve
> this problem, but it is a very big problem.
>
> I have tried to changed the order of the objects, what the actual values of
> the objects are, but I'm now banging my head as to why the soap construction
> is not including these values...
>
> Any help would be greatly appreciated,
>
> Tim.
first thing that comes to mind, the SoapClient::__call() method is
deprecated. have you tried using the SoapClient instance directly? for
example, if you are in WSDL mode and the wsdl defines a method doStuff(),
you can use a SoapClient instance $sc as $sc->doStuff(). i would try that
and see what happens.
-nathan