2017-03-10 9 views
0

私は、SagePay 3.00プロトコル用に以下のXMLを使用してBasketXMLエントリを作成しようとしています。しかし、私は "3021:バスケットの形式が無効です"エラーを取得し続けます。Sagepayプロトコル3.00 - BasketXML形式 - 割引

ここに私の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> 

これが無効である理由いずれかが任意のアイデアを得ましたか。

transactionRegistrationためのPOSTで

48.60

:私はまた、総取引金額を供給しています。

なぜ無効なバスケットですか?

多くのおかげで、解決済み

ピーター

+0

どのようにサーバーにBasket XMLを送信していますか? – DavidG

答えて

0

それは実際にいくつかのHTML文字が含まれて送信されていることが判明しました。たとえそれらが正しくエンコードされていても、たとえば:

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

とにかく - バスケットを提出する前にタグを取り除くことは、このトリックを行ったようです。

これらの文字のいくつかはSagePayで受け入れられていないことが書かれています(有効なxmlであっても)。私の悪い。

(サンプルコードで問題が正しく再現されなかったことを謝ります)