/** * Add billing information to the subscription request. * * @param document * @param subscription * @param subscr_el */ private void addBillingInfoToSubscription( BasicXmlDocument document, Subscription subscription, Element subscr_el) { if (subscription.getCustomer() == null || subscription.getCustomer().getBillTo() == null) { return; } // order info Order order_info = subscription.getOrder(); if (order_info != null) { Element order_el = document.createElement(AuthNetField.ELEMENT_ORDER.getFieldName()); if (StringUtils.isNotEmpty(order_info.getInvoiceNumber())) { Element invoice_num_el = document.createElement(AuthNetField.ELEMENT_INVOICE_NUMBER.getFieldName()); invoice_num_el.appendChild( document.getDocument().createTextNode(order_info.getInvoiceNumber())); order_el.appendChild(invoice_num_el); } if (StringUtils.isNotEmpty(order_info.getDescription())) { Element description_el = document.createElement(AuthNetField.ELEMENT_DESCRIPTION.getFieldName()); description_el.appendChild( document.getDocument().createTextNode(order_info.getDescription())); order_el.appendChild(description_el); } subscr_el.appendChild(order_el); } net.authorize.data.Customer customer_info = subscription.getCustomer(); if (customer_info != null) { Element customer_el = document.createElement(AuthNetField.ELEMENT_CUSTOMER.getFieldName()); if (StringUtils.isNotEmpty(customer_info.getId())) { Element id_el = document.createElement(AuthNetField.ELEMENT_ID.getFieldName()); id_el.appendChild(document.getDocument().createTextNode(customer_info.getId())); customer_el.appendChild(id_el); } if (StringUtils.isNotEmpty(customer_info.getEmail())) { Element email_el = document.createElement(AuthNetField.ELEMENT_EMAIL.getFieldName()); email_el.appendChild(document.getDocument().createTextNode(customer_info.getEmail())); customer_el.appendChild(email_el); } if (customer_info.getBillTo() != null) { if (StringUtils.isNotEmpty(customer_info.getBillTo().getPhoneNumber())) { Element phone_el = document.createElement(AuthNetField.ELEMENT_PHONE_NUMBER.getFieldName()); phone_el.appendChild( document.getDocument().createTextNode(customer_info.getBillTo().getPhoneNumber())); customer_el.appendChild(phone_el); } if (StringUtils.isNotEmpty(customer_info.getBillTo().getFaxNumber())) { Element fax_el = document.createElement(AuthNetField.ELEMENT_FAX_NUMBER.getFieldName()); fax_el.appendChild( document.getDocument().createTextNode(customer_info.getBillTo().getFaxNumber())); customer_el.appendChild(fax_el); } } subscr_el.appendChild(customer_el); } // add billTo addAddressInfoSubscription( document, AuthNetField.ELEMENT_BILL_TO.getFieldName(), subscription.getCustomer().getBillTo(), subscr_el); // add shipTo addAddressInfoSubscription( document, AuthNetField.ELEMENT_SHIP_TO.getFieldName(), subscription.getCustomer().getShipTo(), subscr_el); }