Ошибка запроса QuickBooks CustomerAdd из-за неправильного формата xml?

Вопрос: Отправляю ли я правильный XML-запрос? Я пропустил какую-либо необходимую информацию? Я использую следующую документацию из QuickBooks для сравнения XMLOps: https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html

Я создаю новый коннектор LoopbackJS для QuickBooks и столкнулся с проблемой при создании новых записей, я могу запросить записи отлично.

Я просмотрел несколько других запросов qbXML, когда дело доходит до добавления новых записей, в частности, запрос CustomerAdd и то, что я отправляю в веб-коннектор, похоже, именно то, что используют другие (и это работает для них). Я предполагаю, что что-то не так в самом loopback-connect-quickbooks, а не в запросе, который я отправляю, но я все равно попробую и опубликую его. Заранее спасибо.

<?xml version="1.0"?>
<?qbxml version="13.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq requestID="2">
      <CustomerAdd>
        <FirstName>Anne</FirstName>
        <MiddleName>B</MiddleName>
        <LastName>Williams</LastName>
        <Name>Anne B Williams</Name>
        <ShipToAddress>
          <Name>Anne B Williams</Name>
        </ShipToAddress>
      </CustomerAdd>
    </CustomerAddRq>
  </QBXMLMsgsRq>
</QBXML>

person NodeDad    schedule 12.10.2016    source источник


Ответы (1)


Снова обратитесь к OSR и помните -- порядок тегов ЯВЛЯЕТСЯ важным.

OSR показывает теги в следующем порядке:

<Name >STRTYPE</Name> <!-- required -->
...
<FirstName >STRTYPE</FirstName> <!-- optional -->
<MiddleName >STRTYPE</MiddleName> <!-- optional -->
<LastName >STRTYPE</LastName> <!-- optional -->

А у вас они в таком порядке:

    <FirstName>Anne</FirstName>
    <MiddleName>B</MiddleName>
    <LastName>Williams</LastName>
    <Name>Anne B Williams</Name>

Вы должны следовать порядку тегов, показанных в OSR. Исправьте порядок тегов, и ваш запрос должен пройти нормально.

Дополнительное примечание: в QuickBooks SDK включен инструмент XML Validator, который ТОЧНО скажет вам, в чем заключается ваша ошибка в подобных случаях.

person Keith Palmer Jr.    schedule 12.10.2016
comment
ни за что? Это требует, чтобы это было в порядке, хорошо, я собираюсь попробовать это сейчас... Я свяжусь с вами в течение 5 минут. - person NodeDad; 12.10.2016
comment
Да, это очень странно - это требует, чтобы они были в определенном порядке. - person Keith Palmer Jr.; 12.10.2016
comment
Спасибо, мне потребовалось некоторое время, чтобы проанализировать логику JavaScript, чтобы проанализировать ее из объекта js в xml, но я, наконец, смог отобразить ее в том порядке, в котором он должен был быть. Я обязательно отдам вам должное. на GitHub, так как это проект с открытым исходным кодом. - person NodeDad; 13.10.2016
comment
Ха-ха, я до сих пор не замечал, кто ты такой. Я использовал много основы для вашего проекта PHP, чтобы разработать это. Так что если вы не возражаете, то кредиты определенно будут переданы проекту consolibyte/quickbooks-php. - person NodeDad; 13.10.2016
comment
Потрясающий! Так рад, что смог внести свой вклад! Ссылка на проект? - person Keith Palmer Jr.; 13.10.2016
comment
Да конечно, вот. Я также опубликую это в вопросе. github.com/TeknoloGenie/loopback-connector-quickbooks - person NodeDad; 13.10.2016