Поиск ответа XML API - недопустимое имя элемента: 3DSecureStatus

Когда вы запрашиваете данные транзакции Shopify (от клиента api python) для транзакций, связанных с SagePay, мы получаем ошибку, когда клиент пытается проанализировать возвращенный xml:

Error(Error('Unable to parse xml data: not well-formed (invalid token): line 24, column 7',),)

Похоже, что это связано с содержимым элемента транзакции/получения, включая недопустимое имя тега xml, чтобы указать статус 3D-безопасности.

Например:

<?xml version="1.0" encoding="UTF-8"?>
<transactions type="array">
  <transaction>
    <order-id type="integer">123456789</order-id>
    <amount type="decimal">123.45</amount>
    <status>success</status>
    <kind>sale</kind>
    <authorization>{-REDACTED-}</authorization>
    <created-at type="datetime">2012-01-01T01:01:01+00:00</created-at>
    <gateway>sage_pay_form</gateway>
    <id type="integer">123456789</id>
    <test type="boolean">false</test>
    <receipt>
      <VendorTxCode>123456789</VendorTxCode>
      <VPSTxId>{-REDACTED-}</VPSTxId>
      <Status>OK</Status>
      <StatusDetail>0000 : The Authorisation was Successful.</StatusDetail>
      <TxAuthNo>123456789</TxAuthNo>
      <AVSCV2>SECURITY CODE MATCH ONLY</AVSCV2>
      <AddressResult>NOTMATCHED</AddressResult>
      <PostCodeResult>NOTMATCHED</PostCodeResult>
      <CV2Result>MATCHED</CV2Result>
      <GiftAid>0</GiftAid>
      <3DSecureStatus>OK</3DSecureStatus>
      <CAVV>-REDACTED-</CAVV>
      <CardType>MC</CardType>
      <Last4Digits>1234</Last4Digits>
      <Amount>123.45</Amount>
    </receipt>
  </transaction>
</transactions>

As '3DSecureStatus' is not a valid xml element name, xml parsing fails.

В настоящее время мы не можем использовать json api, поскольку клиент api python не поддерживает его.

3
задан benburry 15 нояб. '12 в 14:27
источник поделиться
1 ответ

Требуется исправление Shopify, чтобы не отправлять недопустимое имя XML-элемента. Например. имя элемента может иметь префикс с подчеркиванием. Я обновлю, когда это будет сделано.

Отсутствие поддержки JSON в виртуализации API python фактически вызвано отсутствием поддержки в pyactiveresource. Я отправил JSON патчи вверх по течению к activeresource, которые вы могли бы использовать. Похоже, что они проигнорированы из-за отсутствия активности в верхнем течении.

UPDATE: функция Shopify исправлена, чтобы не возвращать XML с недопустимыми именами элементов. Вместо этого он будет префикс недопустимого символа начала с символом подчеркивания в имени элемента.

0
ответ дан Dylan Smith 15 нояб. '12 в 19:22
источник поделиться

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