soap - 如果队列中没有作业,Quickbooks Web 连接器会响应

标签 soap quickbooks ipp-qbd-sync

我开发了一个 SOAP Web 服务,与 Quickbooks WebConnector 一起使用,一切正常,但在一种情况下我遇到了问题。

每当我有一个作业在队列中排队供 Web 连接器处理时,一切都正常,但是当没有作业要处理时,Web 连接器会显示错误消息“向应用程序发送错误消息”实际上什么也没处理。

如果在第一个请求中收到

公共(public)字符串sendRequestXML

如果没有作业,则方法将没有可返回的 XML,在这种情况下应该返回什么。我尝试返回空白字符串“”、null、简单 Xml header ( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><?qbxml version=\"8.0\"?>" ),所有这些都在 Web 连接器中给出了上述错误,并且日志中的错误是“无法解析请求 XML”

我还查看了文档(QBWC_proguide.pdf),发现当没有什么需要进一步处理时,我们应该发送NoOp,但这也不起作用。

请就此问题提出建议。

最佳答案

If in the first request received in public String sendRequestXML ...

这就是你的问题。

如果队列中没有任何作业,则 sendRequestXML 根本不应该被调用。。如果它被调用,那么您就不会从您的 authenticate(...) 方法返回正确的响应。

以下是来自身份验证的有效响应的一些示例:

具体来说,请注意这一点:

If there is nothing to do, you should return this array:

array(
  'a valid ticket string goes here',    // send the session ID/ticket here
  'none',                               // indicates that the login was valid, but there's nothing to do
)

如果您像这样返回none,那么sendRequestXML将永远不会被调用,并且您不会收到错误。

确保您像文档指定的那样返回none

关于soap - 如果队列中没有作业,Quickbooks Web 连接器会响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243032/

相关文章:

ios - alamofire 通过 SOAP 发送请求

soap - Microsoft Dynamics NAV Web 服务中的日期过滤器

c# - 请求中的错误 SOAP 操作 header 。为什么?

php - Quickbooks Desktop 多实体自定义字段

QuickBooks 连接错误

c# - "BeginSession"方法未被调用或未成功 - QBFC SDK12 和 ASP.NET 网站

java - 用于连接 v3 中的 Quickbooks Desktop 的 API

multithreading - 无法销毁线程中的 THTTPReqResp 组件