2017-03-10 3 views
0

Ich versuche, einen BasketXML-Eintrag mit dem folgenden XML für das SagePay 3.00-Protokoll zu erstellen. Aber ich bekomme immer den Fehler "3021: Das Basket-Format ist ungültig".Sagepay Protocol 3.00 - BasketXML-Format - Rabatte

Hier ist meine XML:

<basket> 
    <item> 
     <description>Product desc here</description> 
     <productSku>AWAL02</productSku> 
     <productCode>AWAL02</productCode> 
     <quantity>2</quantity> 
     <unitNetAmount>22.00</unitNetAmount> 
     <unitTaxAmount>0.00</unitTaxAmount> 
     <unitGrossAmount>22.00</unitGrossAmount> 
     <totalGrossAmount>44.00</totalGrossAmount> 
    </item> 

    <deliveryNetAmount>10.00</deliveryNetAmount> 
    <deliveryTaxAmount>0.00</deliveryTaxAmount> 
    <deliveryGrossAmount>10.00</deliveryGrossAmount> 

    <discounts> 
     <discount> 
      <fixed>5.40</fixed> 
      <description>Voucher: PB test</description> 
     </discount> 
    </discounts> 
</basket> 

Jeder erhielt alle mögliche Ideen, warum dies ungültig ist? Ich liefere auch den Gesamttransaktionsbetrag wie:

48,60

im POST für transactionRegistration.

Irgendwelche Ideen, warum es ein ungültiger Korb ist?

Vielen Dank,

Peter

+0

Wie senden Sie die Basket XML an den Server? – DavidG

Antwort

0

Entschlossen:

Es stellt sich heraus, dass eigentlich die einige HTML-Zeichen enthalten gesendet werden. Auch wenn sie richtig codiert wurden, zB:

This is &lt;b&gt;bold&lt;/b&gt; 

Wie dem auch sei - Strippen Tags vor den Korb Einreichung scheint den Trick getan zu haben.

Die Dokumentation sagt mir, dass einige dieser Zeichen von SagePay nicht akzeptiert werden (obwohl gültiges XML). Mein Fehler.

(Entschuldigung, dass der Beispielcode das Problem nicht korrekt reproduziert hat).