php - “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);
}
解决方案
推荐阅读
- javascript - 如何设置恒定的导入根路径?
- scheme - 有没有办法在重新定义特殊形式后取回它们?
- mysql - 如何将两个表与一列的位置连接起来
- java - 如何为类外的自定义对话框设置 onDismiss/CancelListener?
- spring - 流式传输时 S3 连接池超时
- java - 代理在 webDriver 中的 chromeOptions 中无法使用 Java 中的 selenium
- android - 如何修复三星设备中的地理围栏触发器,特别是最新的 s9 和 s10
- c# - SMBLibrary:“试图以访问权限禁止的方式访问套接字”
- r - 如何根据每列的总和值选择前 3 列/变量?
- java - javax.validation.constraints 中的注释不起作用(忽略)