Class DefaultPaymentAuthReversalService
- java.lang.Object
 - 
- com.broadleafcommerce.orderoperation.service.payment.DefaultPaymentAuthReversalService
 
 
- 
- All Implemented Interfaces:
 PaymentAuthReversalService
public class DefaultPaymentAuthReversalService extends Object implements PaymentAuthReversalService
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultPaymentAuthReversalService.PaymentReversalPackageAn intermediary data structure used internally byDefaultPaymentAuthReversalServiceto keep track of a reverse authorize that will be executed. 
- 
Constructor Summary
Constructors Constructor Description DefaultPaymentAuthReversalService(OrderProvider<com.broadleafcommerce.order.client.domain.Order> orderProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory, PaymentProvider paymentProvider) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DefaultPaymentAuthReversalService.PaymentReversalPackagebuildPaymentReversalPackage(PaymentSummary paymentSummary)Builds aDefaultPaymentAuthReversalService.PaymentReversalPackagefor thePaymentSummarythat has amount to reverse authorize.protected List<DefaultPaymentAuthReversalService.PaymentReversalPackage>buildPaymentReversalPackages(com.broadleafcommerce.order.client.domain.Order order, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)BuildsPaymentReversalPackagesfor all payments which have only been authorized, not captured.protected OrderProvider<com.broadleafcommerce.order.client.domain.Order>getOrderProvider()protected List<String>getPaymentIds(List<DefaultPaymentAuthReversalService.PaymentReversalPackage> reversalPackages)Gets a list of payment ids from the given list ofPaymentReversalPackages.protected PaymentProvidergetPaymentProvider()protected com.broadleafcommerce.common.extension.TypeFactorygetTypeFactory()protected voidprocessReversalPackage(DefaultPaymentAuthReversalService.PaymentReversalPackage reversePackage, List<TransactionExecutionResponse> reverseResponses, Map<String,String> paymentLockTokens, com.broadleafcommerce.order.client.domain.Order order, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Processes the givenDefaultPaymentAuthReversalService.PaymentReversalPackage.protected TransactionExecutionResponsereverseAuthorizePayment(DefaultPaymentAuthReversalService.PaymentReversalPackage reversePackage, @NonNull String lockToken, com.broadleafcommerce.order.client.domain.Order order, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Executes the reverse authorize transaction for the givenDefaultPaymentAuthReversalService.PaymentReversalPackageusinggetPaymentProvider().protected List<TransactionExecutionResponse>reverseAuthorizePayments(List<DefaultPaymentAuthReversalService.PaymentReversalPackage> reversePackages, com.broadleafcommerce.order.client.domain.Order order, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Given a list ofPaymentReversalPackages, executes the reverse authorize transactions usinggetPaymentProvider().List<TransactionExecutionResponse>reverseRemainingAuthAmounts(com.broadleafcommerce.order.client.domain.Order order, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Executes reverse authorization(s) for all payments on theOrderwhich are authorized but not captured.protected List<PaymentSummary>sortPaymentsByPriority(List<PaymentSummary> paymentSummaries)Given a list ofPaymentSummaries, sorts them in order of which should be reverse authorized first. 
 - 
 
- 
- 
Constructor Detail
- 
DefaultPaymentAuthReversalService
public DefaultPaymentAuthReversalService(OrderProvider<com.broadleafcommerce.order.client.domain.Order> orderProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory, PaymentProvider paymentProvider)
 
 - 
 
- 
Method Detail
- 
reverseRemainingAuthAmounts
public List<TransactionExecutionResponse> reverseRemainingAuthAmounts(com.broadleafcommerce.order.client.domain.Order order, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:PaymentAuthReversalServiceExecutes reverse authorization(s) for all payments on theOrderwhich are authorized but not captured.- Specified by:
 reverseRemainingAuthAmountsin interfacePaymentAuthReversalService- Parameters:
 order- the order for which authorized payments should be reversedcontextInfo- context information surrounding multitenant state- Returns:
 - the 
TransactionExecutionResponsesfor all the reverse authorize transactions 
 
- 
buildPaymentReversalPackages
protected List<DefaultPaymentAuthReversalService.PaymentReversalPackage> buildPaymentReversalPackages(com.broadleafcommerce.order.client.domain.Order order, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
BuildsPaymentReversalPackagesfor all payments which have only been authorized, not captured.- Parameters:
 order- the order containing payments to reverse authorize- Returns:
 - a list of all 
PaymentReversalPackagesto reverse authorize all order payments which have only been authorized, not captured 
 
- 
sortPaymentsByPriority
protected List<PaymentSummary> sortPaymentsByPriority(List<PaymentSummary> paymentSummaries)
Given a list ofPaymentSummaries, sorts them in order of which should be reverse authorized first. By default, the same list is returned.Any custom logic for reverse authorize payment priority should be added here.
- Parameters:
 paymentSummaries- the list ofPaymentSummariesto sort based on reverse authorize priority- Returns:
 - a new list representing the sorted result
 
 
- 
buildPaymentReversalPackage
protected DefaultPaymentAuthReversalService.PaymentReversalPackage buildPaymentReversalPackage(PaymentSummary paymentSummary)
Builds aDefaultPaymentAuthReversalService.PaymentReversalPackagefor thePaymentSummarythat has amount to reverse authorize.- Parameters:
 paymentSummary- thePaymentSummaryto build aDefaultPaymentAuthReversalService.PaymentReversalPackagefor- Returns:
 - a 
DefaultPaymentAuthReversalService.PaymentReversalPackagefor thePaymentSummarythat has amount to reverse authorize 
 
- 
reverseAuthorizePayments
protected List<TransactionExecutionResponse> reverseAuthorizePayments(List<DefaultPaymentAuthReversalService.PaymentReversalPackage> reversePackages, com.broadleafcommerce.order.client.domain.Order order, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Given a list ofPaymentReversalPackages, executes the reverse authorize transactions usinggetPaymentProvider().Returns the responses for each reverse authorize transaction.
- Parameters:
 reversePackages- a list of payment reverse packages whose reversal transactions need to be executedorder- the order to reverse authorize the payments forcontextInfo- context information surrounding multitenant state- Returns:
 - the reverse authorize execution responses after executing all reverse authorizations
 - Throws:
 PaymentTransactionFailureException- if any of the transactions were not successfully executed
 
- 
getPaymentIds
protected List<String> getPaymentIds(List<DefaultPaymentAuthReversalService.PaymentReversalPackage> reversalPackages)
Gets a list of payment ids from the given list ofPaymentReversalPackages.- Parameters:
 reversalPackages- a list ofPaymentReversalPackagesto get the payment ids from- Returns:
 - a list of payment ids
 
 
- 
processReversalPackage
protected void processReversalPackage(DefaultPaymentAuthReversalService.PaymentReversalPackage reversePackage, List<TransactionExecutionResponse> reverseResponses, Map<String,String> paymentLockTokens, com.broadleafcommerce.order.client.domain.Order order, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Processes the givenDefaultPaymentAuthReversalService.PaymentReversalPackage.- Parameters:
 reversePackage- theDefaultPaymentAuthReversalService.PaymentReversalPackageto processreverseResponses- the list ofTransactionExecutionResponsescontaining all the responsespaymentLockTokens- the list of payment lock tokensorder- theOrderfor this payment reversalcontextInfo- context information surrounding multitenant state
 
- 
reverseAuthorizePayment
protected TransactionExecutionResponse reverseAuthorizePayment(DefaultPaymentAuthReversalService.PaymentReversalPackage reversePackage, @NonNull @NonNull String lockToken, com.broadleafcommerce.order.client.domain.Order order, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Executes the reverse authorize transaction for the givenDefaultPaymentAuthReversalService.PaymentReversalPackageusinggetPaymentProvider().- Parameters:
 reversePackage- theDefaultPaymentAuthReversalService.PaymentReversalPackageto execute the reverse authorize transaction forlockToken- the token that owns the payment lockorder- theOrderthat this reverse authorization is forcontextInfo- context information surrounding multitenant state- Returns:
 - the 
TransactionExecutionResponsefor the reverse authorize transaction. 
 
- 
getOrderProvider
protected OrderProvider<com.broadleafcommerce.order.client.domain.Order> getOrderProvider()
 
- 
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
 
- 
getPaymentProvider
protected PaymentProvider getPaymentProvider()
 
 - 
 
 -