Example #1
0
  /**
   * 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);
  }