I am using the php sdk 2.0.4 for Quickbooks online API v3 to do Payment related processing. I use the sdk in the following way:
$result = $dataService->FindById(
new IPPPayment( array( 'Id' => 12345 ), true)
);
The id of the payment I want to get is 12345. Using the API explorer from the Intuit Partnership Platform (IPP) website, I am able to get back a non-null result:
<IntuitResponse>
<Payment domain="QBO" sparse="false">
<Id>12345</Id>
...
<TxnDate>2013-10-15</TxnDate>
<Line>
<Amount>660.00</Amount>
<LinkedTxn>
<TxnId>216</TxnId>
<TxnType>Invoice</TxnType>
</LinkedTxn>
<LineEx>
<NameValue>
<Name>txnId</Name>
<Value>216</Value>
</NameValue>
<NameValue>
<Name>txnOpenBalance</Name>
<Value>790.00</Value>
</NameValue>
<NameValue>
<Name>txnReferenceNumber</Name>
<Value>7030</Value>
</NameValue>
</LineEx>
</Line>
<CustomerRef name="XXXXXXXXX">66</CustomerRef>
<DepositToAccountRef>51</DepositToAccountRef>
<TotalAmt>660.00</TotalAmt>
<UnappliedAmt>0</UnappliedAmt>
<ProcessPayment>false</ProcessPayment>
</Payment>
</IntuitResponse>
Using the php sdk, I get a null value instead. With some troubleshooting, I found that an exception was thrown when the xml msg was being deserialized into php object around v3-php-sdk-2.0.4/Dependencies/XSD2PHP/src/com/mikebevz/xsd2php/Bind.php
line 112.
The exception message was: 'Property NameValue does not exist. Class IPPIntuitAnyType'. The parsing at that point appears to be processing the <LineEx>
element of the xml, but fails to parse it. Could this be a missing data class representing LineEx in the php sdk? or how to best fix this situation?