Class DefaultAPSGatewayWebhookHandler

java.lang.Object
com.broadleafcommerce.payment.service.gateway.webhooks.DefaultAPSGatewayWebhookHandler
All Implemented Interfaces:
APSGatewayWebhookHandler, com.broadleafcommerce.paymentgateway.service.PaymentGatewayTypeAware, com.broadleafcommerce.paymentgateway.service.PaymentGatewayWebhookHandler

public class DefaultAPSGatewayWebhookHandler extends Object implements APSGatewayWebhookHandler
Author:
Dima Myroniuk (dmyroniuk)
  • Constructor Details

    • DefaultAPSGatewayWebhookHandler

      public DefaultAPSGatewayWebhookHandler(APSSignatureService signatureService, List<APSRequestResponseTransformer> requestResponseTransformers, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • validate

      public void validate(@NonNull @NonNull org.springframework.http.HttpHeaders headers, @NonNull @NonNull String requestBody, @NonNull @NonNull Map<String,String> parameters)
      Specified by:
      validate in interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayWebhookHandler
    • shouldHandleRequest

      public boolean shouldHandleRequest(@NonNull @NonNull org.springframework.http.HttpHeaders headers, @NonNull @NonNull String requestBody, @NonNull @NonNull Map<String,String> parameters)
      Specified by:
      shouldHandleRequest in interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayWebhookHandler
    • convertToPaymentResponse

      public org.apache.commons.lang3.tuple.Pair<com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier,com.broadleafcommerce.paymentgateway.domain.PaymentResponse> convertToPaymentResponse(@NonNull @NonNull org.springframework.http.HttpHeaders headers, @NonNull @NonNull String requestBody, @NonNull @NonNull Map<String,String> parameters)
      Specified by:
      convertToPaymentResponse in interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayWebhookHandler
    • getSupportedWebhookNotificationTypes

      public List<String> getSupportedWebhookNotificationTypes()
      Specified by:
      getSupportedWebhookNotificationTypes in interface com.broadleafcommerce.paymentgateway.service.PaymentGatewayWebhookHandler
    • getGatewayType

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

      protected Map<String,Object> convertRequestBody(@NonNull @NonNull org.springframework.http.HttpHeaders headers, @NonNull @NonNull String rawRequestBody)
    • parseRequest

      protected Map<String,Object> parseRequest(@NonNull @NonNull String body, @Nullable org.springframework.http.MediaType mediaType)
    • getMediaTypeCharset

      protected Charset getMediaTypeCharset(@Nullable org.springframework.http.MediaType mediaType)
    • getTransactionIdentifier

      protected com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier getTransactionIdentifier(@NonNull @NonNull Map<String,Object> apsResponse, @NonNull @NonNull String tenantId)
      Builds a TransactionIdentifier based on the transactionReferenceId and tenantId values gathered from the provided APS response.
      Parameters:
      apsResponse - The webhook transaction result payload
      tenantId - ID of the owning tenant
      Returns:
      A TransactionIdentifier based on the transactionReferenceId and tenantId values gathered from the APS response
    • convertToPaymentResponse

      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse convertToPaymentResponse(@NonNull @NonNull Map<String,Object> apsResponse, @NonNull @NonNull String tenantId, @Nullable String applicationId)
    • buildPaymentResponse

      protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse buildPaymentResponse(Map<String,Object> apsResponse, String apsTransactionType)
    • getAmountInMajorUnits

      protected javax.money.MonetaryAmount getAmountInMajorUnits(@NonNull @NonNull Map<String,Object> apsResponse, @NonNull @NonNull javax.money.CurrencyUnit currency)
    • determineTransactionReferenceId

      protected String determineTransactionReferenceId(@NonNull @NonNull Map<String,Object> apsResponse)
    • determineTransactionReferenceId

      protected String determineTransactionReferenceId(@NonNull @NonNull Map<String,Object> apsResponse, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.enums.TransactionType transactionType)
    • determineTransactionType

      protected com.broadleafcommerce.paymentgateway.domain.enums.TransactionType determineTransactionType(@NonNull @NonNull String apsTransactionType)
    • identifyAPSRequestResponseTransformer

      protected APSRequestResponseTransformer identifyAPSRequestResponseTransformer(@NonNull @NonNull APSTransactionType transactionType)
    • getSignatureService

      protected APSSignatureService getSignatureService()
    • getRequestResponseTransformers

      protected List<APSRequestResponseTransformer> getRequestResponseTransformers()
    • getObjectMapper

      protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
    • getTypeFactory

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