Class SavedPaymentMethodTransactionExecutionEndpoint
java.lang.Object
com.broadleafcommerce.paymenttransaction.web.endpoint.SavedPaymentMethodTransactionExecutionEndpoint
@FrameworkRestController
@FrameworkMapping("/saved-payment-methods")
@DataRouteByKey("paymentTransaction")
@ConditionalOnPaymentTransactionAsSavedPaymentStorageLocation
public class SavedPaymentMethodTransactionExecutionEndpoint
extends Object
- Since:
- PaymentTransactionServices 2.1.0, Release Train 2.3.0
- Author:
- Chris Kittrell (ckittrell)
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSavedPaymentMethodTransactionExecutionEndpoint(SavedPaymentMethodService<SavedPaymentMethod> savedPaymentMethodService, PaymentManagementService<Payment> paymentManagementService, TransactionExecutionService transactionExecutionService, TransactionExecutionUtil transactionExecutionUtil, PaymentService<Payment> paymentService, PaymentTransactionService<PaymentTransaction> paymentTransactionService, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected CreatePaymentRequestbuildCreatePaymentRequest(SavedPaymentMethodTransactionExecutionRequest request, SavedPaymentMethod savedPaymentMethod, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected booleancanRetryIndeterminantResultTransaction(@NonNull Payment payment, @NonNull SavedPaymentMethodTransactionExecutionRequest request) executeAuthorize(String savedPaymentMethodId, SavedPaymentMethodTransactionExecutionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) executeAuthorizeAndCapture(String savedPaymentMethodId, SavedPaymentMethodTransactionExecutionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected PaymentManagementService<Payment>protected PaymentService<Payment>protected PaymentTransactionService<PaymentTransaction>protected SavedPaymentMethodService<SavedPaymentMethod>protected TransactionExecutionServiceprotected TransactionExecutionUtilprotected TransactionResultServiceprotected com.broadleafcommerce.common.extension.TypeFactorylookupSavedPaymentMethodTransactionResult(String savedPaymentMethodId, String requestId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected booleanrequestMatchesPayment(@NonNull Payment payment, @NonNull SavedPaymentMethodTransactionExecutionRequest request) voidsetTransactionResultService(TransactionResultService transactionResultService) protected PaymentvalidateRequestAndCreatePayment(@NonNull String savedPaymentMethodId, @NonNull SavedPaymentMethodTransactionExecutionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Validates that the providedSavedPaymentMethodTransactionExecutionRequestaligns with the identifiedSavedPaymentMethod, & if so, creates aPaymentbased on the request & the saved payment method.protected voidvalidateSavedPaymentMethodTransactionExecutionRequest(@NonNull SavedPaymentMethodTransactionExecutionRequest request, @NonNull SavedPaymentMethod savedPaymentMethod, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
-
Field Details
-
BASE_URI
- See Also:
-
-
Constructor Details
-
SavedPaymentMethodTransactionExecutionEndpoint
public SavedPaymentMethodTransactionExecutionEndpoint(SavedPaymentMethodService<SavedPaymentMethod> savedPaymentMethodService, PaymentManagementService<Payment> paymentManagementService, TransactionExecutionService transactionExecutionService, TransactionExecutionUtil transactionExecutionUtil, PaymentService<Payment> paymentService, PaymentTransactionService<PaymentTransaction> paymentTransactionService, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
executeAuthorize
@FrameworkPostMapping(value="/{id}/authorize", consumes="application/json") @Policy(permissionRoots="SAVED_PAYMENT_METHOD_EXECUTE_AUTHORIZE") public TransactionExecutionResponse executeAuthorize(@PathVariable("id") String savedPaymentMethodId, @RequestBody SavedPaymentMethodTransactionExecutionRequest request, @ContextOperation(CREATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
executeAuthorizeAndCapture
@FrameworkPostMapping(value="/{id}/authorize-and-capture", consumes="application/json") @Policy(permissionRoots="SAVED_PAYMENT_METHOD_EXECUTE_AUTHORIZE_AND_CAPTURE") public TransactionExecutionResponse executeAuthorizeAndCapture(@PathVariable("id") String savedPaymentMethodId, @RequestBody SavedPaymentMethodTransactionExecutionRequest request, @ContextOperation(CREATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
lookupSavedPaymentMethodTransactionResult
@FrameworkGetMapping("/{id}/transactions/{requestId}") @Policy(permissionRoots="SAVED_PAYMENT_METHOD_TRANSACTION_RESULTS") public TransactionExecutionResponse lookupSavedPaymentMethodTransactionResult(@PathVariable("id") String savedPaymentMethodId, @PathVariable("requestId") String requestId, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
validateRequestAndCreatePayment
protected Payment validateRequestAndCreatePayment(@NonNull @NonNull String savedPaymentMethodId, @NonNull @NonNull SavedPaymentMethodTransactionExecutionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) throws org.springframework.dao.DataIntegrityViolationException Validates that the providedSavedPaymentMethodTransactionExecutionRequestaligns with the identifiedSavedPaymentMethod, & if so, creates aPaymentbased on the request & the saved payment method.- Parameters:
savedPaymentMethodId- The id of theSavedPaymentMethodthat is to be used to define thePaymentrequest- TheSavedPaymentMethodTransactionExecutionRequestused to define thePaymentcontext- context information around the multi-tenant state- Returns:
- a
Paymentbased on the request & saved payment method - Throws:
org.springframework.dao.DataIntegrityViolationException- if there is already aPaymentpresent with the samePayment.getSavedPaymentMethodId()andPayment.getRequestId(). In other words, the same request to charge the saved payment method has already been made.
-
validateSavedPaymentMethodTransactionExecutionRequest
protected void validateSavedPaymentMethodTransactionExecutionRequest(@NonNull @NonNull SavedPaymentMethodTransactionExecutionRequest request, @NonNull @NonNull SavedPaymentMethod savedPaymentMethod, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
buildCreatePaymentRequest
protected CreatePaymentRequest buildCreatePaymentRequest(SavedPaymentMethodTransactionExecutionRequest request, SavedPaymentMethod savedPaymentMethod, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
canRetryIndeterminantResultTransaction
protected boolean canRetryIndeterminantResultTransaction(@NonNull @NonNull Payment payment, @NonNull @NonNull SavedPaymentMethodTransactionExecutionRequest request) -
requestMatchesPayment
protected boolean requestMatchesPayment(@NonNull @NonNull Payment payment, @NonNull @NonNull SavedPaymentMethodTransactionExecutionRequest request) -
getSavedPaymentMethodService
-
getPaymentManagementService
-
getTransactionExecutionService
-
getTransactionExecutionUtil
-
getPaymentService
-
getPaymentTransactionService
-
setTransactionResultService
@Autowired public void setTransactionResultService(TransactionResultService transactionResultService) -
getTransactionResultService
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-