Class ExternalPaymentProvider<P extends PaymentSummary>

    • Constructor Detail

      • ExternalPaymentProvider

        public ExternalPaymentProvider​(org.springframework.web.reactive.function.client.WebClient webClient,
                                       com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                       com.broadleafcommerce.common.extension.TypeFactory typeFactory,
                                       ExternalPaymentProperties properties)
    • Method Detail

      • patchPayment

        public PaymentSummary patchPayment​(UpdatePaymentRequest updatePaymentRequest,
                                           Integer version,
                                           @Nullable
                                           String lockToken,
                                           @Nullable
                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
        Description copied from interface: PaymentProvider
        Updates the payment based on the provided UpdatePaymentRequest. This method can be used to partially update the payment. To do so provide only the fields you would like to update. The default implementation archives the payment if UpdatePaymentRequest.getAmount() is equal to zero.
        Specified by:
        patchPayment in interface PaymentProvider<P extends PaymentSummary>
        Parameters:
        updatePaymentRequest - the request payload used to update the payment
        version - the payment version
        context - Context information related to multitenancy
        Returns:
        the updated payment summary.
      • archivePayment

        public void archivePayment​(String paymentId,
                                   Integer version,
                                   @Nullable
                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
        Description copied from interface: PaymentProvider
        Archives the payment based on the provided id and version.
        Specified by:
        archivePayment in interface PaymentProvider<P extends PaymentSummary>
        Parameters:
        paymentId - the context id of the payment
        version - the payment version
        context - context information related to multitenancy
      • lockCartPayments

        public Map<String,​String> lockCartPayments​(@NonNull
                                                         @NonNull com.broadleafcommerce.cart.client.domain.Cart cart,
                                                         @Nullable
                                                         com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentProvider
        Locks the cart's payments to ensure that all of the work done within the CheckoutWorkflow and checkout process in general is consistently interacting with payments that will not change. With these locks in place, only this executing process will have access to modify the payments, until the lock TTL expires. Note: make sure that the checkout process can sufficiently be contained within the payment lock TTL. This can be configured in PaymentTransactionServices.
        Specified by:
        lockCartPayments in interface PaymentProvider<P extends PaymentSummary>
        Parameters:
        cart - the Cart whose payments are to be locked.
        contextInfo - context information around sandbox and multitenant state.
        Returns:
        A map of payment id to lock token.
      • getBaseUri

        protected org.springframework.web.util.UriComponentsBuilder getBaseUri()
        Gets the base URI common to all requests this provider will make.
        Returns:
        a URI components builder with the base URI set up
      • getType

        protected org.springframework.core.ParameterizedTypeReference<P> getType()
        Gets the type reference for payment summary.
        Returns:
        type reference for payment summary
      • getPageType

        protected org.springframework.core.ParameterizedTypeReference<ResponsePageGenerator<P>> getPageType()
        Gets the type reference for a page generator of item list items.
        Returns:
        type reference for a page generator of item list items
      • getMapType

        protected org.springframework.core.ParameterizedTypeReference<Map<String,​String>> getMapType()
        Gets the type reference for a list of item list items.
        Returns:
        type reference for a list of item list items
      • getServiceClient

        protected String getServiceClient()