Class DefaultPayPalOrderService

java.lang.Object
com.broadleafcommerce.paypal.micro.service.DefaultPayPalOrderService
All Implemented Interfaces:
PayPalOrderService

public class DefaultPayPalOrderService extends Object implements PayPalOrderService
  • Constructor Details

  • Method Details

    • createPayPalOrder

      public Order createPayPalOrder(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest, boolean performCheckoutOnReturn, boolean capture)
      Description copied from interface: PayPalOrderService
      Creates a PayPal Order.
      Specified by:
      createPayPalOrder in interface PayPalOrderService
      Parameters:
      paymentRequest - The gateway PaymentRequest containing the information necessary to construct the order
      performCheckoutOnReturn - Indicates if we should start checkout after the user has authorized the order
      Returns:
      The new Order
    • updatePayPalOrder

      public void updatePayPalOrder(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
      Description copied from interface: PayPalOrderService
      Updates the PayPal Order to be in sync with the Broadleaf order.

      Our default implementation of this method updates the pricing information in the PayPal order after Order creation to keep both order representations in sync. For creating an order use PayPalOrderService.createPayPalOrder(PaymentRequest, boolean, boolean).

      Specified by:
      updatePayPalOrder in interface PayPalOrderService
      Parameters:
      paymentRequest - The gateway PaymentRequest
    • updateOrderCustomId

      public void updateOrderCustomId(@NonNull @NonNull String orderId, @NonNull @NonNull String customId, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
      Description copied from interface: PayPalOrderService
      Updates the PayPal Order to include the provided custom ID value.
      Specified by:
      updateOrderCustomId in interface PayPalOrderService
      Parameters:
      orderId - the primary identifier of the PayPal Order
      customId - the value that is to be stored on the PayPal Order object
      paymentRequest - The originating PaymentRequest
    • getIntent

      public String getIntent(boolean performCheckoutOnReturn, boolean capture)
    • constructPaymentSource

      protected PaymentSource constructPaymentSource(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getPayerEmail

      @Nullable protected String getPayerEmail(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • constructPayee

      @Nullable protected Payee constructPayee(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
      Constructions a Payee to place on the PurchaseUnit when creating an order. This is used only for PayPal's marketplace offering.
      Parameters:
      paymentRequest - The gateway PaymentRequest with the payment info.
      Returns:
      a Payee to place on the PurchaseUnit or null if no MessageConstants.PAYEE_MERCHANT_ID on PaymentRequest.getAdditionalFields()
    • constructItems

      protected List<Item> constructItems(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • constructShippingDetail

      @Nullable protected ShippingDetail constructShippingDetail(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • convertToMoney

      protected Optional<Money> convertToMoney(@Nullable javax.money.MonetaryAmount amount)
    • getStateCode

      @Nullable protected String getStateCode(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.Address<com.broadleafcommerce.paymentgateway.domain.PaymentRequest> address)
      PayPal supports only the State code with a short form, e.g. "AL" instead of "US-AL".
    • createOrder

      protected Order createOrder(@NonNull @NonNull OrderRequest orderRequest, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • updateOrder

      protected void updateOrder(String orderId, List<Patch> patches, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • constructAmountWithBreakdown

      protected AmountWithBreakdown constructAmountWithBreakdown(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest)
    • getCheckoutProvider

      protected PayPalCheckoutProvider getCheckoutProvider()
    • getGatewayConfiguration

      protected PayPalGatewayConfiguration getGatewayConfiguration()
    • getProperties

      protected PayPalCheckoutApiProperties getProperties()