mirror of
https://github.com/valitydev/adapter-flow-lib.git
synced 2024-11-06 00:05:22 +00:00
Add additional info + custom context (#68)
This commit is contained in:
parent
4c10c52e06
commit
23c1665f0e
2
pom.xml
2
pom.xml
@ -12,7 +12,7 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>adapter-flow-lib</artifactId>
|
||||
<version>0.1.24</version>
|
||||
<version>0.1.25</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>adapter-flow-lib</name>
|
||||
|
@ -12,6 +12,7 @@ public class ExitStateModelToTemporaryContextConverter implements Converter<Exit
|
||||
.providerTrxId(source.getProviderTrxId())
|
||||
.nextStep(source.getNextStep())
|
||||
.pollingInfo(source.getPollingInfo())
|
||||
.customContext(source.getCustomContext())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@ import dev.vality.adapter.flow.lib.utils.TargetStatusResolver;
|
||||
import dev.vality.cds.storage.Auth3DS;
|
||||
import dev.vality.cds.storage.CardData;
|
||||
import dev.vality.cds.storage.SessionData;
|
||||
import dev.vality.damsel.domain.AdditionalTransactionInfo;
|
||||
import dev.vality.damsel.domain.BankCard;
|
||||
import dev.vality.damsel.domain.InvoiceDetails;
|
||||
import dev.vality.damsel.domain.TransactionInfo;
|
||||
@ -88,6 +89,7 @@ public class CtxToEntryModelConverter implements Converter<PaymentContext, Entry
|
||||
.adapterConfigurations(adapterConfigurations)
|
||||
.providerTrxId(trx != null ? trx.getId() : temporaryContext.getProviderTrxId())
|
||||
.savedData(trx != null ? trx.getExtra() : new HashMap<>())
|
||||
.additionalTrxInfo(getAdditionalTrxInfo(context))
|
||||
.successRedirectUrl(getSuccessRedirectUrl(payment, adapterConfigurations))
|
||||
.failedRedirectUrl(getFailureRedirectUrl(payment, adapterConfigurations))
|
||||
.threeDsDataFromMpiCallback(temporaryContext.getThreeDsData())
|
||||
@ -186,5 +188,17 @@ public class CtxToEntryModelConverter implements Converter<PaymentContext, Entry
|
||||
return cardDataService.getCardDataProxyModelFromCds(context);
|
||||
}
|
||||
|
||||
private AdditionalTrxInfo getAdditionalTrxInfo(PaymentContext context) {
|
||||
TransactionInfo trx = context.getPaymentInfo().getPayment().getTrx();
|
||||
if (trx == null || trx.getAdditionalInfo() == null) {
|
||||
return null;
|
||||
}
|
||||
AdditionalTransactionInfo additionalTransactionInfo = trx.getAdditionalInfo();
|
||||
return AdditionalTrxInfo.builder()
|
||||
.approvalCode(additionalTransactionInfo.getApprovalCode())
|
||||
.rrn(additionalTransactionInfo.getRrn())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,7 @@ public class DoNothingHandler implements CommonHandler<ExitStateModel, EntryStat
|
||||
exitStateModel.setProviderTrxId(entryStateModel.getBaseRequestModel().getProviderTrxId());
|
||||
exitStateModel.setNextStep(Step.DO_NOTHING);
|
||||
exitStateModel.setTrxExtra(entryStateModel.getBaseRequestModel().getSavedData());
|
||||
exitStateModel.setAdditionalTrxInfo(entryStateModel.getBaseRequestModel().getAdditionalTrxInfo());
|
||||
if (entryStateModel.getBaseRequestModel().getRecurrentPaymentData().isMakeRecurrent()) {
|
||||
exitStateModel.setRecToken(entryStateModel.getBaseRequestModel().getRecurrentPaymentData().getRecToken());
|
||||
}
|
||||
|
@ -86,10 +86,18 @@ public class BaseRequestModel {
|
||||
* Data that you send to save on previous steps.
|
||||
*/
|
||||
private Map<String, String> savedData;
|
||||
/**
|
||||
* Additional trx info from previous steps.
|
||||
*/
|
||||
private AdditionalTrxInfo additionalTrxInfo;
|
||||
/**
|
||||
* Data that comes in a callback from mpi after the 3ds step.
|
||||
* Parameter names can be unique to your implementation, only you can know.
|
||||
*/
|
||||
private Map<String, String> threeDsDataFromMpiCallback;
|
||||
/**
|
||||
* Custom data for more flexibility
|
||||
*/
|
||||
private byte[] customContext;
|
||||
|
||||
}
|
||||
|
@ -42,5 +42,9 @@ public class BaseResponseModel {
|
||||
* Data for support about transactions.
|
||||
*/
|
||||
private AdditionalTrxInfo additionalTrxInfo;
|
||||
/**
|
||||
* Custom data for more flexibility
|
||||
*/
|
||||
private byte[] customContext;
|
||||
|
||||
}
|
@ -29,6 +29,7 @@ public class ExitStateModel {
|
||||
private AdditionalTrxInfo additionalTrxInfo;
|
||||
|
||||
private String recToken;
|
||||
private byte[] customContext;
|
||||
|
||||
|
||||
}
|
@ -18,5 +18,6 @@ public class TemporaryContext {
|
||||
private String providerTrxId;
|
||||
private PollingInfo pollingInfo;
|
||||
private Map<String, String> threeDsData;
|
||||
private byte[] customContext;
|
||||
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ public class ErrorProcessor implements Processor<ExitStateModel, BaseResponseMod
|
||||
exitStateModel.setErrorCode(String.valueOf(response.getErrorCode()));
|
||||
exitStateModel.setErrorMessage(response.getErrorMessage());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
exitStateModel.setCustomContext(response.getCustomContext());
|
||||
exitStateModel.setProviderTrxId(
|
||||
StringUtils.hasText(response.getProviderTrxId())
|
||||
? response.getProviderTrxId()
|
||||
|
@ -27,6 +27,7 @@ public class RedirectProcessor implements Processor<ExitStateModel, BaseResponse
|
||||
exitStateModel.setProviderTrxId(response.getProviderTrxId());
|
||||
exitStateModel.setTrxExtra(response.getSaveData());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
exitStateModel.setCustomContext(response.getCustomContext());
|
||||
log.debug("Finish redirect process response: {} entryStateModel: {}", response, entryStateModel);
|
||||
return exitStateModel;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ public class RetryProcessor implements Processor<ExitStateModel, BaseResponseMod
|
||||
: entryStateModel.getBaseRequestModel().getProviderTrxId());
|
||||
exitStateModel.setTrxExtra(response.getSaveData());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
exitStateModel.setCustomContext(response.getCustomContext());
|
||||
log.debug("Finish redirect process response: {} entryStateModel: {}", response, entryStateModel);
|
||||
return exitStateModel;
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ public class SuccessFinishProcessor
|
||||
: entryStateModel.getBaseRequestModel().getProviderTrxId());
|
||||
exitStateModel.setLastOperationStatus(response.getStatus());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
exitStateModel.setCustomContext(response.getCustomContext());
|
||||
Map<String, String> saveData = response.getSaveData();
|
||||
if (entryStateModel.getBaseRequestModel().getRecurrentPaymentData() != null
|
||||
&& entryStateModel.getBaseRequestModel().getRecurrentPaymentData().isMakeRecurrent()) {
|
||||
|
Loading…
Reference in New Issue
Block a user