我想获取客户的帐单邮寄地址详细信息,并希望将其记录在blCheckoutWorkflow
的活动类中。
我尝试了以下内容。
Order order=context.getOrder();
Customer c=order.getCustomer();
c.getCustomerPayments().get(0).getBillingAddress();
但是getCustomerPayments()
返回的列表大小为0
。所以我得到ArrayIndexOutOfBoundsException
。
有没有办法获取客户在/checkout
中输入的帐单邮寄地址。
请回复我。
答案 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();