Class DefaultExternalTransactionResultService
java.lang.Object
com.broadleafcommerce.paymenttransaction.service.DefaultExternalTransactionResultService
- All Implemented Interfaces:
ExternalTransactionResultService
public class DefaultExternalTransactionResultService
extends Object
implements ExternalTransactionResultService
The default implementation for
ExternalTransactionResultService.- Author:
- LSPL385
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultExternalTransactionResultService(com.broadleafcommerce.paymentgateway.service.provider.PaymentGatewayResourceProvider paymentGatewayResourceProvider, TransactionExecutionUtil transactionExecutionUtil, TransactionResultService transactionResultService) -
Method Summary
Modifier and TypeMethodDescriptionprotected PaymentdeterminePaymentFromCallbackRequest(@NonNull org.springframework.data.domain.Page<Payment> payments, @NonNull PaymentCallbackValidationRequest validationRequest, @NonNull String requestTokenId) protected com.broadleafcommerce.paymentgateway.util.PaymentCallbackSecurityTokenUtilprotected com.broadleafcommerce.paymentgateway.service.provider.PaymentGatewayResourceProviderprotected PaymentService<Payment>protected StringgetSecureTokenKeyFromRequest(@NonNull PaymentCallbackValidationRequest validationRequest) protected TransactionExecutionUtilprotected TransactionResultServiceprotected com.broadleafcommerce.common.extension.TypeFactoryhandleTransactionResult(@NonNull String gatewayType, @NonNull Map<String, String> requestParams, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Reads the transaction result usingPaymentGatewayTransactionLookupService, records the result to the appropriate transaction and payment.protected PaymentTransactionidentifyExternalTransaction(@NonNull com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier transactionIdentifier, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) identifyTransactionRequiringExternalInteraction(@NonNull Payment payment, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Finds the transaction that required external results.lookupAndRecordExternalTransactionResult(@NonNull Payment payment, @NonNull PaymentTransaction transactionRequiringExternal, String lockToken, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Reads the transaction result usingPaymentGatewayTransactionLookupService, records the result to the appropriate transaction and payment.protected StringparseTokenIdFromSecureTokenKey(String secureTokenKey) protected TransactionExecutionResponserecordExternalTransactionResults(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull Payment payment, @NonNull PaymentTransaction transactionRequiringExternalInteraction, String lockToken, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) voidsetPaymentCallbackSecurityTokenUtil(com.broadleafcommerce.paymentgateway.util.PaymentCallbackSecurityTokenUtil paymentCallbackSecurityTokenUtil) voidsetPaymentService(PaymentService<Payment> paymentService) voidsetTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory) validatePaymentCallbackToken(@NonNull org.springframework.data.domain.Page<Payment> payments, @NonNull PaymentCallbackValidationRequest validationRequest, PaymentLockTokens paymentLockTokens, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates thecallback requestand returns the result of that validation.protected voidvalidateTransactionResults(@NonNull TransactionExecutionResponse transactionResponse, @NonNull PaymentTransaction transactionRequiringExternal, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
-
Constructor Details
-
DefaultExternalTransactionResultService
public DefaultExternalTransactionResultService(com.broadleafcommerce.paymentgateway.service.provider.PaymentGatewayResourceProvider paymentGatewayResourceProvider, TransactionExecutionUtil transactionExecutionUtil, TransactionResultService transactionResultService)
-
-
Method Details
-
identifyTransactionRequiringExternalInteraction
public PaymentTransaction identifyTransactionRequiringExternalInteraction(@NonNull @NonNull Payment payment, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:ExternalTransactionResultServiceFinds the transaction that required external results.- Specified by:
identifyTransactionRequiringExternalInteractionin interfaceExternalTransactionResultService- Parameters:
payment- the payment object that contains a reference to the required transactioncontext- context information related to multitenancy- Returns:
- the transaction that required external results
-
lookupAndRecordExternalTransactionResult
public TransactionExecutionResponse lookupAndRecordExternalTransactionResult(@NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction transactionRequiringExternal, @Nullable String lockToken, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:ExternalTransactionResultServiceReads the transaction result usingPaymentGatewayTransactionLookupService, records the result to the appropriate transaction and payment.This can be used, for example, to verify that a customer has approved a payment for transactions that requires to add bank details.
- Specified by:
lookupAndRecordExternalTransactionResultin interfaceExternalTransactionResultService- Parameters:
payment- the payment gateway type that is used to identify the appropriatePaymentGatewayTransactionLookupServicetransactionRequiringExternal- the transaction that requires external resultslockToken- Token granted to resource that owns the payment lock.context- context information related to multitenancy- Returns:
- the
TransactionExecutionResponsedescribing the resulting transaction andPaymentSummary
-
validatePaymentCallbackToken
public PaymentCallbackValidationResponse validatePaymentCallbackToken(@NonNull @NonNull org.springframework.data.domain.Page<Payment> payments, @NonNull @NonNull PaymentCallbackValidationRequest validationRequest, @Nullable PaymentLockTokens paymentLockTokens, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:ExternalTransactionResultServiceValidates thecallback requestand returns the result of that validation.- Specified by:
validatePaymentCallbackTokenin interfaceExternalTransactionResultService- Parameters:
payments- the page of payments for the requestvalidationRequest- thecallback validation requestpaymentLockTokens- thePaymentLockTokens, if anycontextInfo- context information related to multitenancy.- Returns:
the payment callback validation response
-
handleTransactionResult
public TransactionExecutionResponse handleTransactionResult(@NonNull @NonNull String gatewayType, @NonNull @NonNull Map<String, String> requestParams, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:ExternalTransactionResultServiceReads the transaction result usingPaymentGatewayTransactionLookupService, records the result to the appropriate transaction and payment.This can be used, for example, to verify that a customer has approved a payment for transactions that require to add bank details.
- Specified by:
handleTransactionResultin interfaceExternalTransactionResultService- Parameters:
gatewayType- the payment gateway type that is used to identify the appropriatePaymentGatewayTransactionLookupServicerequestParams- the parameters for requestcontext- context information related to multitenancy- Returns:
- the
TransactionExecutionDetaildescribing the resulting transaction andPaymentSummary
-
identifyExternalTransaction
protected PaymentTransaction identifyExternalTransaction(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.TransactionIdentifier transactionIdentifier, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
recordExternalTransactionResults
protected TransactionExecutionResponse recordExternalTransactionResults(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull Payment payment, @NonNull @NonNull PaymentTransaction transactionRequiringExternalInteraction, @Nullable String lockToken, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
validateTransactionResults
protected void validateTransactionResults(@NonNull @NonNull TransactionExecutionResponse transactionResponse, @NonNull @NonNull PaymentTransaction transactionRequiringExternal, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
getSecureTokenKeyFromRequest
protected String getSecureTokenKeyFromRequest(@NonNull @NonNull PaymentCallbackValidationRequest validationRequest) -
parseTokenIdFromSecureTokenKey
-
determinePaymentFromCallbackRequest
protected Payment determinePaymentFromCallbackRequest(@NonNull @NonNull org.springframework.data.domain.Page<Payment> payments, @NonNull @NonNull PaymentCallbackValidationRequest validationRequest, @NonNull @NonNull String requestTokenId) -
getPaymentGatewayResourceProvider
protected com.broadleafcommerce.paymentgateway.service.provider.PaymentGatewayResourceProvider getPaymentGatewayResourceProvider() -
getTransactionExecutionUtil
-
getTransactionResultService
-
getPaymentService
-
setPaymentService
-
getPaymentCallbackSecurityTokenUtil
@Nullable protected com.broadleafcommerce.paymentgateway.util.PaymentCallbackSecurityTokenUtil getPaymentCallbackSecurityTokenUtil() -
setPaymentCallbackSecurityTokenUtil
@Autowired(required=false) public void setPaymentCallbackSecurityTokenUtil(@Nullable com.broadleafcommerce.paymentgateway.util.PaymentCallbackSecurityTokenUtil paymentCallbackSecurityTokenUtil) -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
setTypeFactory
@Autowired public void setTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-