如何在broadleaf的blCheckoutWorkflow中获取客户账单地址?

时间:2014-05-08 07:37:38

标签: broadleaf-commerce

我想获取客户的帐单邮寄地址详细信息,并希望将其记录在blCheckoutWorkflow活动类中。

我尝试了以下内容。

Order order=context.getOrder();
Customer c=order.getCustomer();
c.getCustomerPayments().get(0).getBillingAddress();

但是getCustomerPayments()返回的列表大小为0。所以我得到ArrayIndexOutOfBoundsException

有没有办法获取客户在/checkout中输入的帐单邮寄地址。

请回复我。

1 个答案:

答案 0 :(得分:0)

getCustomerPayments()旨在保存特定客户的已保存付款信息,并不适用于当前订单。当客户想要保存下次签出的付款信息时使用此选项(CustomerPaymentImpl上的'令牌属性用于从支付网关查找PCI敏感数据)。

如果您使用的是Broadleaf 3.1.0-GA +,那么您应该这样做:

Order order = context.getOrder();
Address billingAddress = order.getOrderPayments().get(0).getBillingAddress();

如果您使用的是Broadleaf 3.0.10-GA或以下版本,则应执行以下操作:

Order order = context.getOrder();
Address billingAddress = order.getPaymentInfos().get(0).getAddress();