mirror of
https://github.com/valitydev/adapter-flow-lib.git
synced 2024-11-06 00:05:22 +00:00
Fix trx (#12)
This commit is contained in:
parent
4b137530e1
commit
6cd73e98f9
2
pom.xml
2
pom.xml
@ -13,7 +13,7 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>adapter-flow-lib</artifactId>
|
||||
<version>0.0.8</version>
|
||||
<version>0.0.9</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>adapter-flow-lib</name>
|
||||
|
@ -5,9 +5,10 @@ import dev.vality.adapter.flow.lib.flow.ResultIntentResolver;
|
||||
import dev.vality.adapter.flow.lib.model.ExitStateModel;
|
||||
import dev.vality.adapter.flow.lib.serde.TemporaryContextSerializer;
|
||||
import dev.vality.adapter.flow.lib.service.IntentResultFactory;
|
||||
import dev.vality.adapter.flow.lib.utils.AdditionalInfoUtils;
|
||||
import dev.vality.damsel.domain.TransactionInfo;
|
||||
import dev.vality.damsel.proxy_provider.Intent;
|
||||
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
|
||||
import dev.vality.java.damsel.utils.creators.DomainPackageCreators;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
@ -34,11 +35,14 @@ public class ExitModelToProxyResultConverter implements Converter<ExitStateModel
|
||||
|
||||
return new PaymentProxyResult(intent)
|
||||
.setNextState(serializer.writeByte(contextConverter.convert(exitStateModel)))
|
||||
.setTrx(DomainPackageCreators.createTransactionInfo(
|
||||
exitStateModel.getProviderTrxId(),
|
||||
exitStateModel.getTrxExtra() != null
|
||||
? exitStateModel.getTrxExtra()
|
||||
: new HashMap<>())
|
||||
.setTrx(
|
||||
new TransactionInfo()
|
||||
.setId(String.valueOf(
|
||||
exitStateModel.getEntryStateModel().getBaseRequestModel().getPaymentId()))
|
||||
.setExtra(exitStateModel.getTrxExtra() != null
|
||||
? exitStateModel.getTrxExtra()
|
||||
: new HashMap<>())
|
||||
.setAdditionalInfo(AdditionalInfoUtils.initAdditionalTrxInfo(exitStateModel))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,8 @@ import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
|
||||
import dev.vality.adapter.flow.lib.model.ExitStateModel;
|
||||
import dev.vality.adapter.flow.lib.serde.TemporaryContextSerializer;
|
||||
import dev.vality.adapter.flow.lib.service.RecurrentIntentResultFactory;
|
||||
import dev.vality.adapter.flow.lib.utils.AdditionalInfoUtils;
|
||||
import dev.vality.damsel.domain.TransactionInfo;
|
||||
import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
|
||||
import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -12,8 +14,6 @@ import org.springframework.core.convert.converter.Converter;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static dev.vality.java.damsel.utils.creators.DomainPackageCreators.createTransactionInfo;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class ExitModelToRecTokenProxyResultConverter implements Converter<ExitStateModel, RecurrentTokenProxyResult> {
|
||||
|
||||
@ -36,11 +36,14 @@ public class ExitModelToRecTokenProxyResultConverter implements Converter<ExitSt
|
||||
|
||||
return new RecurrentTokenProxyResult(intent)
|
||||
.setNextState(serializer.writeByte(contextConverter.convert(exitStateModel)))
|
||||
.setTrx(createTransactionInfo(
|
||||
exitStateModel.getProviderTrxId(),
|
||||
exitStateModel.getTrxExtra() != null
|
||||
? exitStateModel.getTrxExtra()
|
||||
: new HashMap<>())
|
||||
.setTrx(
|
||||
new TransactionInfo()
|
||||
.setId(String.valueOf(
|
||||
exitStateModel.getEntryStateModel().getBaseRequestModel().getPaymentId()))
|
||||
.setExtra(exitStateModel.getTrxExtra() != null
|
||||
? exitStateModel.getTrxExtra()
|
||||
: new HashMap<>())
|
||||
.setAdditionalInfo(AdditionalInfoUtils.initAdditionalTrxInfo(exitStateModel))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,17 @@
|
||||
package dev.vality.adapter.flow.lib.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AdditionalTrxInfo {
|
||||
|
||||
private String rrn;
|
||||
private String approvalCode;
|
||||
|
||||
}
|
@ -38,5 +38,9 @@ public class BaseResponseModel {
|
||||
* Data for choose 3ds flow and parameters for redirects.
|
||||
*/
|
||||
private ThreeDsData threeDsData;
|
||||
/**
|
||||
* Data for support about transactions.
|
||||
*/
|
||||
private AdditionalTrxInfo additionalTrxInfo;
|
||||
|
||||
}
|
@ -26,6 +26,7 @@ public class ExitStateModel {
|
||||
private Map<String, String> trxExtra;
|
||||
private PollingInfo pollingInfo;
|
||||
private ThreeDsData threeDsData;
|
||||
private AdditionalTrxInfo additionalTrxInfo;
|
||||
|
||||
private String recToken;
|
||||
|
||||
|
@ -19,6 +19,7 @@ public class ErrorProcessor implements Processor<ExitStateModel, BaseResponseMod
|
||||
ExitStateModel exitStateModel = new ExitStateModel();
|
||||
exitStateModel.setErrorCode(String.valueOf(response.getErrorCode()));
|
||||
exitStateModel.setErrorMessage(response.getErrorMessage());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
log.debug("Finish error process response: {} entryStateModel: {}", response, entryStateModel);
|
||||
return exitStateModel;
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ public class RedirectProcessor implements Processor<ExitStateModel, BaseResponse
|
||||
exitStateModel.setThreeDsData(response.getThreeDsData());
|
||||
exitStateModel.setLastOperationStatus(response.getStatus());
|
||||
exitStateModel.setProviderTrxId(response.getProviderTrxId());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
log.debug("Finish redirect process response: {} entryStateModel: {}", response, entryStateModel);
|
||||
return exitStateModel;
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ public class RetryProcessor implements Processor<ExitStateModel, BaseResponseMod
|
||||
exitStateModel.setLastOperationStatus(response.getStatus());
|
||||
exitStateModel.setProviderTrxId(entryStateModel.getBaseRequestModel().getProviderTrxId());
|
||||
exitStateModel.setTrxExtra(response.getSaveData());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
log.debug("Finish redirect process response: {} entryStateModel: {}", response, entryStateModel);
|
||||
return exitStateModel;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ public class SuccessFinishProcessor
|
||||
? response.getProviderTrxId()
|
||||
: entryStateModel.getBaseRequestModel().getProviderTrxId());
|
||||
exitStateModel.setLastOperationStatus(response.getStatus());
|
||||
exitStateModel.setAdditionalTrxInfo(response.getAdditionalTrxInfo());
|
||||
Map<String, String> saveData = response.getSaveData();
|
||||
if (entryStateModel.getBaseRequestModel().getRecurrentPaymentData() != null
|
||||
&& entryStateModel.getBaseRequestModel().getRecurrentPaymentData().isMakeRecurrent()) {
|
||||
|
@ -6,7 +6,6 @@ import dev.vality.adapter.flow.lib.utils.TimerProperties;
|
||||
import dev.vality.java.damsel.utils.extractors.OptionsExtractors;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package dev.vality.adapter.flow.lib.service;
|
||||
|
||||
import dev.vality.adapter.flow.lib.serde.ParametersSerializer;
|
||||
import dev.vality.adapter.flow.lib.serde.ParametersDeserializer;
|
||||
import dev.vality.adapter.flow.lib.serde.ParametersSerializer;
|
||||
import dev.vality.adapter.flow.lib.utils.CallbackUrlExtractor;
|
||||
import dev.vality.adapter.helpers.hellgate.HellgateAdapterClient;
|
||||
import dev.vality.adapter.helpers.hellgate.exception.HellgateException;
|
||||
|
@ -0,0 +1,17 @@
|
||||
package dev.vality.adapter.flow.lib.utils;
|
||||
|
||||
import dev.vality.adapter.flow.lib.model.ExitStateModel;
|
||||
import dev.vality.damsel.domain.AdditionalTransactionInfo;
|
||||
|
||||
public class AdditionalInfoUtils {
|
||||
|
||||
public static AdditionalTransactionInfo initAdditionalTrxInfo(ExitStateModel exitStateModel) {
|
||||
if (exitStateModel.getAdditionalTrxInfo() != null) {
|
||||
return new AdditionalTransactionInfo()
|
||||
.setRrn(exitStateModel.getAdditionalTrxInfo().getRrn())
|
||||
.setApprovalCode(exitStateModel.getAdditionalTrxInfo().getApprovalCode());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -6,9 +6,9 @@ import dev.vality.adapter.flow.lib.controller.ThreeDsCallbackController;
|
||||
import dev.vality.adapter.flow.lib.flow.config.*;
|
||||
import dev.vality.adapter.flow.lib.flow.full.FullThreeDsAllVersionsStepResolverImpl;
|
||||
import dev.vality.adapter.flow.lib.flow.full.GenerateTokenFullThreeDsAllVersionsStepResolverImpl;
|
||||
import dev.vality.adapter.flow.lib.serde.TemporaryContextDeserializer;
|
||||
import dev.vality.adapter.flow.lib.service.TagManagementService;
|
||||
import dev.vality.adapter.flow.lib.utils.CallbackUrlExtractor;
|
||||
import dev.vality.adapter.flow.lib.serde.TemporaryContextDeserializer;
|
||||
import dev.vality.adapter.flow.lib.validator.AdapterConfigurationValidator;
|
||||
import dev.vality.adapter.helpers.hellgate.HellgateAdapterClient;
|
||||
import dev.vality.bender.BenderSrv;
|
||||
|
@ -18,10 +18,6 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.web.server.LocalServerPort;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
@ -10,7 +10,6 @@ import dev.vality.adapter.flow.lib.flow.simple.redirect.config.SimpleRedirectWit
|
||||
import dev.vality.adapter.flow.lib.flow.utils.BeanUtils;
|
||||
import dev.vality.adapter.flow.lib.flow.utils.MockUtil;
|
||||
import dev.vality.adapter.flow.lib.model.BaseResponseModel;
|
||||
import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
|
||||
import dev.vality.damsel.proxy_provider.PaymentContext;
|
||||
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -20,19 +19,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.web.server.LocalServerPort;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Map;
|
||||
|
||||
import static dev.vality.adapter.flow.lib.flow.utils.BeanUtils.createParesBuffer;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
|
Loading…
Reference in New Issue
Block a user