使用php sdk 2.0.4 for Quickbooks online API v3无法解析具有LineEx的付款
我正在使用PHPSDK2.0.4 for Quickbooks online API v3进行支付相关处理。 我使用sdk的方式如下:使用php sdk 2.0.4 for Quickbooks online API v3无法解析具有LineEx的付款,php,quickbooks,quickbooks-online,Php,Quickbooks,Quickbooks Online,我正在使用PHPSDK2.0.4 for Quickbooks online API v3进行支付相关处理。 我使用sdk的方式如下: $result = $dataService->FindById( new IPPPayment( array( 'Id' => 12345 ), true) ); 我想获得的付款id是12345。使用Intuit Partnership Platform(IPP)网站上的API explorer,我能够返回非空结果: <IntuitR
$result = $dataService->FindById(
new IPPPayment( array( 'Id' => 12345 ), true)
);
我想获得的付款id是12345。使用Intuit Partnership Platform(IPP)网站上的API explorer,我能够返回非空结果:
<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>
12345
...
2013-10-15
660
216
发票联
txnId
216
txnOpenBalance
790
TXN参考计数器
7030
66
51
660
0
假的
使用PHPSDK,我得到一个空值。通过一些故障排除,我发现在v3-php-sdk-2.0.4/Dependencies/XSD2PHP/src/com/mikebevz/XSD2PHP/Bind.php
第112行附近将xml消息反序列化到php对象时引发了异常
异常消息为:“属性名称值不存在。”。类IPPIntentityType'。此时的解析似乎正在处理xml的
元素,但解析失败。这可能是php sdk中缺少的表示LineEx的数据类吗?或者如何最好地解决这种情况?昨天,我在一个系统中遇到了与此库相同的问题,该系统自3月份以来一直在使用API,没有问题。我假设Intuit对XML结构或其他方面做了一些更改,但是没有人更新“V3PHPSDK”代码来匹配。6月份在他们社区论坛上的这篇文章描述了一个类似的案例:
try {
$propertyDocs = $refl->getProperty($name)->getDocComment();
} catch (\ReflectionException $e) {
if ($name == "NameValue") continue; // QB APIv3 bug!
else throw new \RuntimeException($e->getMessage().". Class ".get_class($model));
}
它很难看,但它很管用,我找不到任何其他方法来解决它。请注意,实际上只有
catch{}
块中的代码被修改。您是一个救星@jeff令人震惊的是,“v3phpsdk”仍然存在许多bug,我认为这些bug对于任何与QuickBook集成的应用程序来说都是非常常见的任务。这一次你确实帮我省了不少时间。谢谢,我遇到了同样的问题