Class MyFatoorahAuthorizeRequestResponseTransformer
java.lang.Object
com.broadleafcommerce.myfatoorah.service.requestresponse.AbstractRequestResponseTransformer
com.broadleafcommerce.myfatoorah.service.requestresponse.MyFatoorahAuthorizeRequestResponseTransformer
- All Implemented Interfaces:
RequestResponseTransformer
public class MyFatoorahAuthorizeRequestResponseTransformer
extends AbstractRequestResponseTransformer
The transformer for
DefaultTransactionTypes.AUTHORIZE transaction type.- Author:
- Dima Myroniuk (dmyroniuk)
-
Constructor Summary
ConstructorsConstructorDescriptionMyFatoorahAuthorizeRequestResponseTransformer(MyFatoorahConfigurationProperties configProperties, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringBuild the gateway transaction id using the payment id & track id, instead of usingMyFatoorahResponse.InvoiceTransaction.getTransactionId()due to this field not being present in the webhook payload.protected StringbuildUserDefinedField(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) booleanChecks if this transformer can handle the specified transaction type.createMyFatoorahRequest(@NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest) Creates the MyFatoorah request body based onMyFatoorahPaymentRequest.protected Stringget3DSVerificationUrl(@NonNull MyFatoorahResponse myFatoorahResponse) protected StringgetCallBackUrl(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) protected StringgetCurrency(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) protected StringgetErrorUrl(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) protected StringgetLanguage(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) protected StringgetSessionId(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) protected com.broadleafcommerce.common.extension.TypeFactoryprotected booleanisSuccessful(MyFatoorahResponse.InvoiceTransaction transaction) protected voidpopulateCustomerDetails(@NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, Map<String, Object> request) com.broadleafcommerce.paymentgateway.domain.PaymentResponsepopulatePaymentResponse(@NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull MyFatoorahResponse myFatoorahResponse) Populates the payment response based on the response from the MyFatoorah API.protected com.broadleafcommerce.paymentgateway.domain.PaymentResponsepopulatePaymentResponse(@NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull MyFatoorahResponse myFatoorahResponse, MyFatoorahResponse.InvoiceTransaction transaction) protected voidpopulateResponseMap(@NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull MyFatoorahResponse myFatoorahResponse, MyFatoorahResponse.InvoiceTransaction latestTransaction) protected booleanMethods inherited from class com.broadleafcommerce.myfatoorah.service.requestresponse.AbstractRequestResponseTransformer
getConfigProperties, getCurrencyCode, getGatewayResponseCode, getInvoiceAmount, getObjectMapper, getPhoneNumber, getTransactionAmount, identifyFailureType, identifyLatestTransaction, putIfNotBlank
-
Constructor Details
-
MyFatoorahAuthorizeRequestResponseTransformer
public MyFatoorahAuthorizeRequestResponseTransformer(MyFatoorahConfigurationProperties configProperties, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
canHandle
Description copied from interface:RequestResponseTransformerChecks if this transformer can handle the specified transaction type.- Parameters:
transactionType- the transaction type of the request- Returns:
- true if this transformer can be used for the specified request
-
createMyFatoorahRequest
public Map<String,Object> createMyFatoorahRequest(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest) Description copied from interface:RequestResponseTransformerCreates the MyFatoorah request body based onMyFatoorahPaymentRequest.- Specified by:
createMyFatoorahRequestin interfaceRequestResponseTransformer- Overrides:
createMyFatoorahRequestin classAbstractRequestResponseTransformer- Parameters:
myFatoorahPaymentRequest- the myFatoorah payment request- Returns:
- the MyFatoorah request body
-
populatePaymentResponse
public com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse) Description copied from interface:RequestResponseTransformerPopulates the payment response based on the response from the MyFatoorah API.- Specified by:
populatePaymentResponsein interfaceRequestResponseTransformer- Overrides:
populatePaymentResponsein classAbstractRequestResponseTransformer- Parameters:
myFatoorahPaymentRequest- the myFatoorah payment requestpaymentResponse- the payment response to populatemyFatoorahResponse- the response from MyFatoorah API- Returns:
- the populated payment response
-
getSessionId
@Nullable protected String getSessionId(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
getCallBackUrl
@Nullable protected String getCallBackUrl(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
getErrorUrl
@Nullable protected String getErrorUrl(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
getCurrency
protected String getCurrency(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
getLanguage
protected String getLanguage(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
populateCustomerDetails
protected void populateCustomerDetails(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, Map<String, Object> request) -
buildUserDefinedField
@Nullable protected String buildUserDefinedField(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentRequest paymentRequest) -
populatePaymentResponse
protected com.broadleafcommerce.paymentgateway.domain.PaymentResponse populatePaymentResponse(@NonNull @NonNull MyFatoorahPaymentRequest myFatoorahPaymentRequest, @NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull MyFatoorahResponse.InvoiceTransaction transaction) -
isSuccessful
-
buildGatewayTransactionId
protected String buildGatewayTransactionId(@NonNull MyFatoorahResponse.InvoiceTransaction transaction) Build the gateway transaction id using the payment id & track id, instead of usingMyFatoorahResponse.InvoiceTransaction.getTransactionId()due to this field not being present in the webhook payload.- Parameters:
transaction- The transaction results- Returns:
- The gateway transaction id based on the payment id & track id
-
requires3DSVerification
-
get3DSVerificationUrl
@Nullable protected String get3DSVerificationUrl(@NonNull @NonNull MyFatoorahResponse myFatoorahResponse) -
populateResponseMap
protected void populateResponseMap(@NonNull @NonNull com.broadleafcommerce.paymentgateway.domain.PaymentResponse paymentResponse, @NonNull @NonNull MyFatoorahResponse myFatoorahResponse, @NonNull MyFatoorahResponse.InvoiceTransaction latestTransaction) -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-