如何将折扣详细信息与BasketXML一起传递?

时间:2019-01-28 11:12:49

标签: java sagepay

我正在将sagepay 3.0集成到我的系统中。

我要根据第documentation第48页的建议将Discounts与BasketXML一起传递。

但是在Basket类中没有这样的方法可以传递折扣。

我正在使用sagepay-api-1.2.2.0.jar库进行集成。

    Basket basket = new Basket();
    // ... set common params to basket
    // basket.setDiscounts(discounts); // not exists!

    BasketXmlFormatter xmlFormatter = new BasketXmlFormatter();
    String basketXml = xmlFormatter.toXml(iFormPayment, basket);

1 个答案:

答案 0 :(得分:0)

因为没有这种方法可以在购物篮中设置折扣。我们需要手动附加XML字符串。

    String discountXML = "<discounts>";
    String discountTag = "<discount>"; // can be muliple
    discountTag += "<fixed>" + discountPrice + "</fixed>"; // REQUIRED
    discountTag += "<description>10% Discount Applied</description>";
    discountTag += "</discount>";
    discountXML += discountTag;
    discountXML += "</discounts>";

    BasketXmlFormatter xmlFormatter = new BasketXmlFormatter();
    String basketXml = xmlFormatter.toXml(iFormPayment, basket);
    basketXml = basketXml.replace("</basket>", discountXML + "</basket>");