Class DefaultTransactionResultService

java.lang.Object
com.broadleafcommerce.paymenttransaction.service.DefaultTransactionResultService
All Implemented Interfaces:
TransactionResultService

public class DefaultTransactionResultService extends Object implements TransactionResultService
  • Constructor Details

  • Method Details

    • handleRecordTransactionException

      public TransactionExecutionResponse handleRecordTransactionException(@NonNull @NonNull Exception e, @NonNull @NonNull String gatewayType, @Nullable Payment payment, @Nullable PaymentTransaction pendingTransaction, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: TransactionResultService
      Handles the exceptions thrown when recording transaction results.
      Specified by:
      handleRecordTransactionException in interface TransactionResultService
      Parameters:
      e - the exception thrown
      gatewayType - the gateway used to process this payment.
      payment - the payment being processed, if available.
      pendingTransaction - the transaction pending results, if available.
      context - the contextInfo for the request
      Returns:
      the TransactionExecutionResponse describing the resulting transaction and PaymentSummary
    • buildPendingTransactionNotFoundResponse

      protected TransactionExecutionResponse buildPendingTransactionNotFoundResponse(@NonNull @NonNull PaymentTransaction pendingTransaction, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • getPayment

      public Payment getPayment(@NonNull @NonNull PaymentTransaction pendingTransaction, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: TransactionResultService
      Fetches the payment that the pending transaction belongs to. By default, this method returns the archived payment as well.
      Specified by:
      getPayment in interface TransactionResultService
      Parameters:
      pendingTransaction - the transaction that is pending results from the gateway
      context - the contextInfo for the request
      Returns:
      the Payment that this transaction belongs to
    • buildTransactionLookupRequest

      public com.broadleafcommerce.paymentgateway.domain.TransactionLookupRequest buildTransactionLookupRequest(@NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction paymentTransaction, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: TransactionResultService
      Builds the transaction details to pass to the payment gateway.
      Specified by:
      buildTransactionLookupRequest in interface TransactionResultService
      Parameters:
      payment - the Payment that this transaction belongs to
      paymentTransaction - the transaction that is pending results from the gateway
      contextInfo - the contextInfo for the request
      Returns:
      the request object including transaction-identifying data
    • identifyPendingTransactionByTransactionIdentifier

      public PaymentTransaction identifyPendingTransactionByTransactionIdentifier(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier transactionIdentifier, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: TransactionResultService
      Identifies the transaction that is pending results from the gateway.
      Specified by:
      identifyPendingTransactionByTransactionIdentifier in interface TransactionResultService
      Parameters:
      transactionIdentifier - the identifier for the transaction
      contextInfo - the contextInfo for the request
      Returns:
      the PaymentTransaction that is pending results from the gateway
    • recordChildTransactionResults

      public TransactionExecutionResponse recordChildTransactionResults(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction pendingTransaction, @NonNull @NonNull String managementStateReason, @Nullable String lockToken, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: TransactionResultService
      Records the transaction results from the payment gateway.
      Specified by:
      recordChildTransactionResults in interface TransactionResultService
      Parameters:
      paymentResponse - the payment gateway's response to the executed transaction
      payment - the Payment that this transaction belongs to
      pendingTransaction - the transaction that is pending results from the gateway
      managementStateReason - the reason for the transaction managementState, i.e. "EXTERNAL_TRANSACTION"
      lockToken - the token that owns the payment lock
      context - the contextInfo for the request
      Returns:
      the TransactionExecutionResponse describing the resulting transaction and PaymentSummary
    • identifyChildTransaction

      public Optional<PaymentTransaction> identifyChildTransaction(@NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction transactionRequiringExternal)
      Description copied from interface: TransactionResultService
      Identifies the child transaction of the pending transaction.
      Specified by:
      identifyChildTransaction in interface TransactionResultService
      Parameters:
      payment - the Payment that this transaction belongs to
      transactionRequiringExternal - the transaction that is pending results from the gateway
      Returns:
      the child transaction, if found
    • buildContextInfoFromTransaction

      protected com.broadleafcommerce.data.tracking.core.context.ContextInfo buildContextInfoFromTransaction(@NonNull @NonNull PaymentTransaction transaction)
    • logIfPaymentArchived

      protected void logIfPaymentArchived(@NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction transaction)
    • getPaymentTransactionService

      protected PaymentTransactionService<PaymentTransaction> getPaymentTransactionService()
    • getTransactionExecutionUtil

      protected TransactionExecutionUtil getTransactionExecutionUtil()
    • getPaymentService

      protected PaymentService<Payment> getPaymentService()
    • getPaymentLockService

      protected PaymentLockService<Payment> getPaymentLockService()
    • getTransactionExecutionService

      protected TransactionExecutionService getTransactionExecutionService()
    • getTypeFactory

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