Ответ веб-коннектора Quickbooks, если в очереди нет заданий

Я разработал веб-службу SOAP для использования с веб-соединителем quickbooks, и все работает нормально, но в одном случае у меня возникают проблемы.

Каждый раз, когда у меня в очереди выстраивается задание для обработки веб-соединителя, все в порядке, но при отсутствии задания на обработку веб-соединителя отображается сообщение об ошибке "Отправка сообщения об ошибке в приложение", хотя на самом деле ничего не было обработано.

Если в первом запросе, полученном в

public String sendRequestXML

метод, если нет рабочих мест, не будет XML, доступного для возврата, что должно быть возвращено в этом случае. Я попытался вернуть пустую строку "", нулевые, простые заголовки Xml ("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><?qbxml version=\"8.0\"?>") и все это дало вышеуказанную ошибку в веб-соединителе, и ошибка в журналах была "Невозможно проанализировать XML-запрос".

Также я просмотрел документы (QBWC_proguide.pdf) и обнаружил, что мы должны отправлять NoOp, когда дальше нечего обрабатывать, но это тоже не сработало.

Пожалуйста, предложите по этому вопросу.

1 ответ

Решение

Если в первом запросе публично получен String sendRequestXML...

Это ваша проблема прямо здесь.

Если в очереди нет заданий, то sendRequestXML вообще не должен вызываться. Если он вызывается, значит, вы не возвращаете правильный ответ от вашего метода authenticate (...).

Вот несколько примеров правильных ответов от authenticate:

В частности, обратите внимание на это:

Если делать нечего, вы должны вернуть этот массив:

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 как документы указывают.

Другие вопросы по тегам