Class DefaultCheckoutCom3DSTransactionLookupService

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse buildPaymentResponse​(@NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutPaymentResponse, @NonNull com.checkout.four.CheckoutApi api)
      Builds a PaymentResponse based on the given GetPaymentResponse.
      protected com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier buildTransactionIdentifier​(@NonNull com.checkout.payments.four.response.GetPaymentResponse getPaymentResponse)
      Builds a TransactionIdentifier based on the given GetPaymentResponse.
      protected javax.money.MonetaryAmount getAmountInMajorUnits​(@NonNull Long amount, @NonNull String currencyCode)
      Gets the MonetaryAmount in major units from the given amount and currencyCode.
      protected CheckoutApiInitService getCheckoutApiInitService()  
      protected String getCheckoutPaymentId​(@NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest)
      Gets the id of the Checkout.com payment from the given TransactionLookupRequest.
      String getGatewayType()  
      protected String getTenantId​(@NonNull com.checkout.payments.four.response.GetPaymentResponse getPaymentResponse)
      Gets the tenant id from the given GetPaymentResponse.getMetadata().
      org.apache.commons.lang3.tuple.Pair<com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier,​com.broadleafcommerce.paymentgateway.domain.PaymentResponse> getTransactionDetails​(@NonNull Map<String,​String> requestParams, String tenantId, String applicationId)  
      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()  
      com.broadleafcommerce.paymentgateway.domain.PaymentResponse lookupTransactionDetails​(@NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest, String tenantId, String applicationId)  
      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populate3DSData​(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull com.checkout.payments.ThreeDSData threeDSData)
      Populates the 3DS data for the given PaymentResponse.
      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populateActionData​(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutComPayment, @NonNull com.checkout.four.CheckoutApi api)
      Identifies a Checkout.com PaymentAction using the PaymentResponse.getTransactionReferenceId() & adds data from the PaymentAction to the PaymentResponse.
      protected boolean transactionResultsAreAvailable​(@NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutPaymentResponse)
      Determines if the 3DS transaction results are available for the given GetPaymentResponse.
      void validateRequestParams​(@NonNull Map<String,​String> requestParams)  
    • Constructor Detail

      • DefaultCheckoutCom3DSTransactionLookupService

        public DefaultCheckoutCom3DSTransactionLookupService​(CheckoutApiInitService checkoutApiInitService,
                                                             com.broadleafcommerce.common.extension.TypeFactory typeFactory)
    • Method Detail

      • validateRequestParams

        public void validateRequestParams​(@NonNull
                                          @NonNull Map<String,​String> requestParams)
        Specified by:
        validateRequestParams in interface com.broadleafcommerce.paymentgateway.service.PaymentGateway3DSTransactionLookupService
      • getTransactionDetails

        public org.apache.commons.lang3.tuple.Pair<com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier,​com.broadleafcommerce.paymentgateway.domain.PaymentResponse> getTransactionDetails​(@NonNull
                                                                                                                                                                                                              @NonNull Map<String,​String> requestParams,
                                                                                                                                                                                                              @Nullable
                                                                                                                                                                                                              String tenantId,
                                                                                                                                                                                                              @Nullable
                                                                                                                                                                                                              String applicationId)
        Specified by:
        getTransactionDetails in interface com.broadleafcommerce.paymentgateway.service.PaymentGateway3DSTransactionLookupService
      • lookupTransactionDetails

        public com.broadleafcommerce.paymentgateway.domain.PaymentResponse lookupTransactionDetails​(@NonNull
                                                                                                    @NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest,
                                                                                                    @Nullable
                                                                                                    String tenantId,
                                                                                                    @Nullable
                                                                                                    String applicationId)
        Specified by:
        lookupTransactionDetails in interface com.broadleafcommerce.paymentgateway.service.PaymentGateway3DSTransactionLookupService
      • transactionResultsAreAvailable

        protected boolean transactionResultsAreAvailable​(@NonNull
                                                         @NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutPaymentResponse)
        Determines if the 3DS transaction results are available for the given GetPaymentResponse.
        Parameters:
        checkoutPaymentResponse - the GetPaymentResponse to determine if the 3DS transaction results are available
        Returns:
        true if the 3DS transaction results are available for the given GetPaymentResponse, otherwise false
      • buildTransactionIdentifier

        protected com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier buildTransactionIdentifier​(@NonNull
                                                                                                               @NonNull com.checkout.payments.four.response.GetPaymentResponse getPaymentResponse)
        Builds a TransactionIdentifier based on the given GetPaymentResponse.
        Parameters:
        getPaymentResponse - the GetPaymentResponse to build the TransactionIdentifier from
        Returns:
        a TransactionIdentifier based on the given GetPaymentResponse
      • getTenantId

        protected String getTenantId​(@NonNull
                                     @NonNull com.checkout.payments.four.response.GetPaymentResponse getPaymentResponse)
        Gets the tenant id from the given GetPaymentResponse.getMetadata().
        Parameters:
        getPaymentResponse - the GetPaymentResponse to get the tenant id from
        Returns:
        the tenant id from the given GetPaymentResponse.getMetadata()
      • buildPaymentResponse

        protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse buildPaymentResponse​(@NonNull
                                                                                                   @NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutPaymentResponse,
                                                                                                   @NonNull
                                                                                                   @NonNull com.checkout.four.CheckoutApi api)
        Builds a PaymentResponse based on the given GetPaymentResponse.
        Parameters:
        checkoutPaymentResponse - the GetPaymentResponse to build the PaymentResponse from
        api - the CheckoutApi used to gather the latest action data for the GetPaymentResponse with
        Returns:
        a PaymentResponse based on the given GetPaymentResponse
      • getAmountInMajorUnits

        protected javax.money.MonetaryAmount getAmountInMajorUnits​(@NonNull
                                                                   @NonNull Long amount,
                                                                   @NonNull
                                                                   @NonNull String currencyCode)
        Gets the MonetaryAmount in major units from the given amount and currencyCode.
        Parameters:
        amount - the amount to convert to MonetaryAmount in major units from
        currencyCode - the currency code of the MonetaryAmount
        Returns:
        the MonetaryAmount in major units from the given amount and currencyCode
        See Also:
        Money.ofMinor(CurrencyUnit, long)
      • populate3DSData

        protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populate3DSData​(@NonNull
                                                                                              @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse,
                                                                                              @NonNull
                                                                                              @NonNull com.checkout.payments.ThreeDSData threeDSData)
        Populates the 3DS data for the given PaymentResponse.
        Parameters:
        paymentResponse - the PaymentResponse to populate the 3DS data for
        threeDSData - the ThreeDSData to populate the 3DS data from
        Returns:
        the PaymentResponse with the populated 3DS data
      • populateActionData

        protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populateActionData​(@NonNull
                                                                                                 @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse,
                                                                                                 @NonNull
                                                                                                 @NonNull com.checkout.payments.four.response.GetPaymentResponse checkoutComPayment,
                                                                                                 @NonNull
                                                                                                 @NonNull com.checkout.four.CheckoutApi api)
        Identifies a Checkout.com PaymentAction using the PaymentResponse.getTransactionReferenceId() & adds data from the PaymentAction to the PaymentResponse.
        Parameters:
        paymentResponse - the PaymentResponse to populate the action data for
        checkoutComPayment - the GetPaymentResponse correlates to the Checkout.com payment
        api - the CheckoutApi to get the payment actions from
        Returns:
        the PaymentResponse with the payment action data included
      • getCheckoutPaymentId

        @Nullable
        protected String getCheckoutPaymentId​(@NonNull
                                              @NonNull com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest transactionLookupRequest)
        Gets the id of the Checkout.com payment from the given TransactionLookupRequest.

        Note that this is not the id of the Broadleaf payment.

        Parameters:
        transactionLookupRequest - the TransactionLookupRequest to get the Checkout.com payment id from
        Returns:
        the id of the Checkout.com payment from the given TransactionLookupRequest
      • getGatewayType

        public String getGatewayType()
        Specified by:
        getGatewayType in interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayTypeAware
      • getTypeFactory

        protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()