首页 > 解决方案 > “ReceivePaymentToDepositQuery”中的 Quickbooks 桌面 php 库问题

问题描述

我已经使用 quickbooks 桌面 php 库大约一年了。我在当前系统中的基本工作流程是:

. 通过调用 api 将请求排入队列。. 在连接器中导入 qwc 文件并运行。它将从服务器拉入排队的请求,处理它们并将响应返回给服务器。

这就是我的代码库的样子: https ://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php

通过遵循上述代码库,我可以查询发票、客户、帐户、项目....等。但我获取未存款付款列表的请求不起作用。我从这里得到了请求 xml:

https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html

只需从下拉列表中选择“ReceivePaymentToDepositQueryRq”,您就会看到 xml。我还打印了在日志中形成的最终请求 xml。它看起来像这样:

<?xml 版本="1.0" 编码="utf-8"?>

<?qbxml 版本="13.0"?>

<QBXML>

<QBXMLMsgsRq onError="stopOnError">

    <ReceivePaymentToDepositQueryRq metaData="MetaDataAndResponseData">

        <IncludeRetElement>TxnLineID</IncludeRetElement>

        <IncludeRetElement>TxnType</IncludeRetElement>

        <IncludeRetElement>CustomerRef</IncludeRetElement>

        <IncludeRetElement>TxnDate</IncludeRetElement>

        <IncludeRetElement>RefNumber</IncludeRetElement>

        <IncludeRetElement>Amount</IncludeRetElement>

        <IncludeRetElement>CurrencyRef</IncludeRetElement>

        <IncludeRetElement>ExchangeRate</IncludeRetElement>

        <IncludeRetElement>AmountInHomeCurrency</IncludeRetElement>

    </ReceivePaymentToDepositQueryRq>

</QBXMLMsgsRq>

</QBXML>

到目前为止,一切看起来都很好。但问题是我没有得到结果。它甚至没有给出任何更痛苦的错误细节。如果你们中的任何人能帮助我,那就太好了。提前致谢。

注意:在上面的 xml 中,我尝试了使用和不使用 <IncludeRetElement> 标记。在这两种情况下都不起作用。

按照@Keith 在评论中的要求,我在这里添加了我的代码:

function _quickbooks_ReceivePaymentToDeposit_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)

{

$xml = '<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<ReceivePaymentToDepositQueryRq metaData="MetaDataAndResponseData">
<IncludeRetElement>TxnLineID</IncludeRetElement>
<IncludeRetElement>TxnType</IncludeRetElement>
<IncludeRetElement>CustomerRef</IncludeRetElement>
<IncludeRetElement>TxnDate</IncludeRetElement>
<IncludeRetElement>RefNumber</IncludeRetElement>
<IncludeRetElement>Amount</IncludeRetElement>
<IncludeRetElement>CurrencyRef</IncludeRetElement>
<IncludeRetElement>ExchangeRate</IncludeRetElement>
<IncludeRetElement>AmountInHomeCurrency</IncludeRetElement>
</ReceivePaymentToDepositQueryRq>
</QBXMLMsgsRq>
</QBXML>';

return $xml;

}

函数 _quickbooks_ReceivePaymentToDeposit_response($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents) {

$Createdon = date('Ymd');
$file = "logs/$Createdon.txt";
if (!file_exists($file)) {
    $myFile = fopen($file, "w") or die("Unable to open file!");
    fclose($myFile);
}
$current = file_get_contents($file);
$current .= "\n\n" . date("h:i:sa") . "\n" . $xml . "\n";
file_put_contents($file, $current);

}

标签: phpquickbooks

解决方案


推荐阅读