update signature generation & add BOL response
This commit is contained in:
parent
631bd19f1a
commit
a1589fb254
4
pom.xml
4
pom.xml
@ -77,6 +77,10 @@
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-smallrye-health</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
package com.banesco.common.application.helper;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
|
||||
import java.util.Base64;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@ApplicationScoped
|
||||
@ -44,4 +47,50 @@ public class SerializationHelper {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public String encodeSha256(String json) {
|
||||
return DigestUtils.sha256Hex(json);
|
||||
}
|
||||
|
||||
public <T> String toJsonString(T element) {
|
||||
if (element == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
try {
|
||||
return objectMapper.writeValueAsString(element);
|
||||
} catch (JsonProcessingException e) {
|
||||
log.error("Error al convertir objeto a Json String: {}", e.getMessage());
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public <T> Map<String, Object> toMap(T element) {
|
||||
return toMap(element, null);
|
||||
}
|
||||
|
||||
public <T> Map<String, Object> toMap(
|
||||
T element,
|
||||
List<String> excludedFields
|
||||
) {
|
||||
if (element == null) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
try {
|
||||
Map<String, Object> map = objectMapper.convertValue(
|
||||
element, new TypeReference<>() {}
|
||||
);
|
||||
|
||||
if (excludedFields != null && !excludedFields.isEmpty()) {
|
||||
Set<String> excludedSet = new HashSet<>(excludedFields);
|
||||
excludedSet.forEach(map::remove);
|
||||
}
|
||||
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
log.error("Error al convertir objeto a Map: {}", e.getMessage());
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ public class RestClientConfig {
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
private static final String API_BASE = "api.rest-client.";
|
||||
private static final String API_PAYMENT_STATUS_BY_ID_NAME = "payment-status-by-id";
|
||||
private static final String API_PAYMENT_ORDER_BY_PARAMETERS_NAME = "payment-order-by-parameters";
|
||||
|
||||
@Inject
|
||||
public RestClientConfig(
|
||||
@ -33,7 +33,7 @@ public class RestClientConfig {
|
||||
}
|
||||
|
||||
public PaymentOrderConfig getPaymentOrderConfig() {
|
||||
return getConfig(API_PAYMENT_STATUS_BY_ID_NAME, PaymentOrderConfig.class);
|
||||
return getConfig(API_PAYMENT_ORDER_BY_PARAMETERS_NAME, PaymentOrderConfig.class);
|
||||
}
|
||||
|
||||
private <T> T getConfig(
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.banesco.module.document.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -9,6 +10,7 @@ import lombok.*;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Document {
|
||||
private String documentName; // fileName
|
||||
}
|
||||
|
||||
@ -2,11 +2,14 @@ package com.banesco.module.instruction.domain.model;
|
||||
|
||||
import com.banesco.common.domain.exception.HttpStatusCodeException;
|
||||
import com.banesco.common.domain.model.Identifier;
|
||||
import com.banesco.module.party.domain.model.Party;
|
||||
import com.banesco.module.party.domain.model.PartyIdentification;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Getter
|
||||
@ -17,14 +20,16 @@ import java.util.Objects;
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Instruction {
|
||||
private InstructionIdentification instructionIdentifier; // Request JSON: "recipientId"
|
||||
private String instructionDescription; // Request JSON: "signature"
|
||||
private InstructionInvolvement instructionInvolvement; // Request JSON: "recipientId"
|
||||
private List<InstructionDateTime> instructionDate; // Request JSON: "dateCreate"
|
||||
private InstructionIdentification instructionIdentifier; // Request JSON: "id"
|
||||
private InstructionPurposeType instructionPurposeType; // Request JSON: "channelOrigin" (BOLE)
|
||||
|
||||
public static Instruction fromResource(
|
||||
String partyReferenceId,
|
||||
String channelCode,
|
||||
String signatureIdentifier
|
||||
String initiatedDate,
|
||||
String instructionRequestId,
|
||||
String channelCode
|
||||
) {
|
||||
boolean isChannelCodeValid = (Arrays.stream(
|
||||
InstructionPurposeType.values()
|
||||
@ -35,18 +40,39 @@ public class Instruction {
|
||||
}
|
||||
|
||||
return Instruction.builder()
|
||||
.instructionInvolvement(
|
||||
InstructionInvolvement.builder()
|
||||
.partyReference(
|
||||
Party.builder()
|
||||
.partyIdentification(List.of(
|
||||
PartyIdentification.builder()
|
||||
.partyIdentification(
|
||||
Identifier.builder()
|
||||
.identifierValue(Objects.toString(partyReferenceId, ""))
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
))
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.instructionIdentifier(
|
||||
InstructionIdentification.builder()
|
||||
.identification(
|
||||
Identifier.builder()
|
||||
.identifierValue(partyReferenceId)
|
||||
.identifierValue(Objects.toString(instructionRequestId, ""))
|
||||
.build()
|
||||
)
|
||||
.identificationType(InstructionIdentificationType.INSTRUCTION_NUMBER)
|
||||
.build()
|
||||
)
|
||||
.instructionDate(List.of(
|
||||
InstructionDateTime.builder()
|
||||
.date(Objects.toString(initiatedDate, ""))
|
||||
.build()
|
||||
))
|
||||
.instructionPurposeType(InstructionPurposeType.valueOf(channelCode))
|
||||
.instructionDescription(signatureIdentifier)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.banesco.module.instruction.domain.model;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class InstructionDateTime {
|
||||
private String date;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.banesco.module.instruction.domain.model;
|
||||
|
||||
import com.banesco.module.party.domain.model.Party;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class InstructionInvolvement {
|
||||
private Party partyReference;
|
||||
}
|
||||
@ -14,6 +14,5 @@ public class PaymentOrderRequest {
|
||||
private Operation operation;
|
||||
private String channelId;
|
||||
private String signature;
|
||||
|
||||
private String fintechId;
|
||||
}
|
||||
@ -11,4 +11,6 @@ import lombok.*;
|
||||
@RegisterForReflection
|
||||
public class Operation {
|
||||
private String recipientId;
|
||||
private String dateCreate;
|
||||
private Long id;
|
||||
}
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
package com.banesco.module.payment_order.domain.model;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class PaymentOrderBol {
|
||||
private Long id;
|
||||
private String requestType;
|
||||
private String emitterReceptor;
|
||||
private String status;
|
||||
private BigDecimal amount;
|
||||
private String currency;
|
||||
private String concept;
|
||||
private String dateCreate;
|
||||
}
|
||||
@ -11,7 +11,7 @@ import java.math.BigDecimal;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class PaymentOrder {
|
||||
public class PaymentOrderBole {
|
||||
private Long nroRequest;
|
||||
private String dispatchDate;
|
||||
private String fileName;
|
||||
@ -38,7 +38,8 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
|
||||
PaymentOrderRequest params,
|
||||
Class<T> responseType
|
||||
) {
|
||||
String signatureIdentifier = serializationHelper.encodeBase64(params);
|
||||
String fintechId = params.getFintechId();
|
||||
String signatureIdentifier = getSignatureIdentifier(params);
|
||||
HttpRequest request = HttpRequest.forApiPrivateResponseList(
|
||||
paymentOrderConfig.getUrl(),
|
||||
paymentOrderConfig.getStatusSuccess(),
|
||||
@ -46,7 +47,7 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
|
||||
responseType
|
||||
)
|
||||
.withPathParams(Map.of("signatureIdentifier", signatureIdentifier))
|
||||
.withHeaders(Map.of("fintechId", params.getFintechId()))
|
||||
.withHeaders(Map.of("fintechId", fintechId))
|
||||
.withTimeout(
|
||||
paymentOrderConfig.getTimeout().getConnect(),
|
||||
paymentOrderConfig.getTimeout().getResponse()
|
||||
@ -106,4 +107,24 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
|
||||
throw HttpStatusCodeException.serviceUnavailable("503");
|
||||
}
|
||||
}
|
||||
|
||||
private String getSignatureIdentifier(PaymentOrderRequest params) {
|
||||
Map<String, Object> paymentOrderRequest = serializationHelper.toMap(params);
|
||||
String signature = serializationHelper.encodeSha256(
|
||||
serializationHelper.toJsonString(paymentOrderRequest.get("operation")) +
|
||||
serializationHelper.encodeBase64(params.getChannelId())
|
||||
);
|
||||
|
||||
paymentOrderRequest.put("signature", signature);
|
||||
|
||||
paymentOrderRequest.remove("fintechId");
|
||||
|
||||
String signatureIdentifier = serializationHelper.encodeBase64(paymentOrderRequest);
|
||||
|
||||
log.info("1. Firma generada: {}", signature);
|
||||
log.info("2. Parametros de la solicitud: {}", paymentOrderRequest);
|
||||
log.info("3. Solicitud codificada: {}", signatureIdentifier);
|
||||
|
||||
return signatureIdentifier;
|
||||
}
|
||||
}
|
||||
@ -31,7 +31,7 @@ public class ServiceOrderPaymentSearchService implements ServiceOrderPaymentSear
|
||||
public ApiResponse<ServiceOrderPaymentSearchResponse> execute(
|
||||
ServiceOrderPaymentSearchRequest request
|
||||
) {
|
||||
log.info("Iniciando ejecucion para el id: {}", request.getId());
|
||||
log.info("Iniciando ejecucion para el id: {}", request.getPartyId());
|
||||
|
||||
try {
|
||||
return apiPrivate(request);
|
||||
@ -54,7 +54,7 @@ public class ServiceOrderPaymentSearchService implements ServiceOrderPaymentSear
|
||||
private ApiResponse<ServiceOrderPaymentSearchResponse> apiPrivate(
|
||||
ServiceOrderPaymentSearchRequest request
|
||||
) {
|
||||
log.info("Ejecutando llamada al api privada: {}", request.getId());
|
||||
log.info("Ejecutando llamada al api privada: {}", request.getPartyId());
|
||||
|
||||
return new ApiResponse<>(
|
||||
ServiceOrderPaymentSearchResponse.builder()
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.banesco.module.service_order_payment_search.domain.dto.request;
|
||||
|
||||
import com.banesco.module.instruction.domain.model.Instruction;
|
||||
import com.banesco.module.instruction.domain.model.InstructionPurposeType;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -23,22 +24,51 @@ public class ServiceOrderPaymentSearchRequest {
|
||||
@NonNull
|
||||
private Instruction procedureRequest;
|
||||
|
||||
public String getId() {
|
||||
return getProcedureRequest().getInstructionIdentifier().getIdentification().getIdentifierValue();
|
||||
public String getPartyId() {
|
||||
return getProcedureRequest()
|
||||
.getInstructionInvolvement()
|
||||
.getPartyReference()
|
||||
.getPartyIdentification()
|
||||
.get(0)
|
||||
.getPartyIdentification()
|
||||
.getIdentifierValue();
|
||||
}
|
||||
|
||||
public String getInitiatedDate() {
|
||||
return getProcedureRequest()
|
||||
.getInstructionDate()
|
||||
.get(0)
|
||||
.getDate();
|
||||
}
|
||||
|
||||
public String getPaymentRequestId() {
|
||||
return getProcedureRequest()
|
||||
.getInstructionIdentifier()
|
||||
.getIdentification()
|
||||
.getIdentifierValue();
|
||||
}
|
||||
|
||||
public String getChannelCode() {
|
||||
return getProcedureRequest().getInstructionPurposeType().name();
|
||||
}
|
||||
|
||||
public String getSignatureIdentifier() {
|
||||
return getProcedureRequest().getInstructionDescription();
|
||||
public boolean isBole() {
|
||||
return getProcedureRequest().getInstructionPurposeType() == InstructionPurposeType.BOLE;
|
||||
}
|
||||
|
||||
public Map<String, String> toParams() {
|
||||
return Map.ofEntries(
|
||||
entry("partyReferenceId", Objects.toString(getPartyId(), "")),
|
||||
entry("channelCode", Objects.toString(getChannelCode(), ""))
|
||||
);
|
||||
}
|
||||
|
||||
public Map<String, String> toQueryString() {
|
||||
return Map.ofEntries(
|
||||
entry("appId", Objects.toString(getAppId(), "")),
|
||||
entry("customerReferenceFintechId", Objects.toString(getCustomerReferenceFintechId(), ""))
|
||||
entry("customerReferenceFintechId", Objects.toString(getCustomerReferenceFintechId(), "")),
|
||||
entry("initiatedDate", Objects.toString(getInitiatedDate(), "")),
|
||||
entry("paymentRequestId", Objects.toString(getPaymentRequestId(), ""))
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.banesco.module.service_order_payment_search.domain.model;
|
||||
|
||||
import com.banesco.module.document.domain.model.Document;
|
||||
import com.banesco.module.transaction.domain.model.Transaction;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -11,7 +12,10 @@ import lombok.*;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class ServicingOrderProcedure {
|
||||
private Document document; // fileName
|
||||
private Transaction transaction; // status, accepted, rejected, expired
|
||||
private Document document; // BOLE: fileName
|
||||
// BOLE: nroRequest, status, accepted, rejected, expired, dispatchDate, quantity
|
||||
// BOL: id, requestType, emitterReceptor, status, amount, currency, concept, dateCreate
|
||||
private Transaction transaction;
|
||||
}
|
||||
|
||||
@ -2,7 +2,8 @@ package com.banesco.module.service_order_payment_search.infrastructure.adapter;
|
||||
|
||||
import com.banesco.common.domain.exception.HttpStatusCodeException;
|
||||
import com.banesco.module.payment_order.application.usecase.PaymentOrderUseCase;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrder;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrderBol;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrderBole;
|
||||
import com.banesco.module.service_order_payment_search.application.repository.ApiPrivateRepository;
|
||||
import com.banesco.module.service_order_payment_search.domain.dto.request.ServiceOrderPaymentSearchRequest;
|
||||
import com.banesco.module.service_order_payment_search.domain.model.ServicingOrderProcedure;
|
||||
@ -29,16 +30,42 @@ public class ApiPrivateAdapter implements ApiPrivateRepository {
|
||||
public List<ServicingOrderProcedure> execute(
|
||||
ServiceOrderPaymentSearchRequest request
|
||||
) {
|
||||
List<PaymentOrder> response = paymentOrderUseCase.execute(
|
||||
ServicingOrderMapper.toPaymentRequest(request), PaymentOrder.class
|
||||
return request.isBole() ? executeBole(request) : executeBol(request);
|
||||
}
|
||||
|
||||
private List<ServicingOrderProcedure> executeBole(
|
||||
ServiceOrderPaymentSearchRequest request
|
||||
) {
|
||||
List<PaymentOrderBole> response = paymentOrderUseCase.execute(
|
||||
ServicingOrderMapper.toPaymentRequest(request),
|
||||
PaymentOrderBole.class
|
||||
);
|
||||
|
||||
log.info("Resultado de las transacciones obtenidas: {}", response.size());
|
||||
log.info("Resultado de las transacciones obtenidas (BOLE): {}", response.size());
|
||||
|
||||
if(response.isEmpty()) {
|
||||
validateResponseNotEmpty(response);
|
||||
|
||||
return ServicingOrderMapper.toBoleModel(response);
|
||||
}
|
||||
|
||||
private List<ServicingOrderProcedure> executeBol(
|
||||
ServiceOrderPaymentSearchRequest request
|
||||
) {
|
||||
List<PaymentOrderBol> response = paymentOrderUseCase.execute(
|
||||
ServicingOrderMapper.toPaymentRequest(request),
|
||||
PaymentOrderBol.class
|
||||
);
|
||||
|
||||
log.info("Resultado de las transacciones obtenidas (BOL): {}", response.size());
|
||||
|
||||
validateResponseNotEmpty(response);
|
||||
|
||||
return ServicingOrderMapper.toBolModel(response);
|
||||
}
|
||||
|
||||
private <T> void validateResponseNotEmpty(List<T> response) {
|
||||
if (response.isEmpty()) {
|
||||
throw HttpStatusCodeException.badRequest("400");
|
||||
}
|
||||
|
||||
return ServicingOrderMapper.toModel(response);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,17 @@
|
||||
package com.banesco.module.service_order_payment_search.infrastructure.mapper;
|
||||
|
||||
import com.banesco.module.document.domain.model.Document;
|
||||
import com.banesco.module.party.domain.model.Party;
|
||||
import com.banesco.module.party.domain.model.PartyIdentification;
|
||||
import com.banesco.module.payment_order.domain.dto.request.PaymentOrderRequest;
|
||||
import com.banesco.module.payment_order.domain.model.Operation;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrder;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrderBol;
|
||||
import com.banesco.module.payment_order.domain.model.PaymentOrderBole;
|
||||
import com.banesco.module.service_order_payment_search.domain.dto.request.ServiceOrderPaymentSearchRequest;
|
||||
import com.banesco.module.service_order_payment_search.domain.model.ServicingOrderProcedure;
|
||||
import com.banesco.common.domain.model.Identifier;
|
||||
import com.banesco.module.transaction.domain.model.*;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -20,61 +24,135 @@ public class ServicingOrderMapper {
|
||||
) {
|
||||
return PaymentOrderRequest.builder()
|
||||
.fintechId(request.getCustomerReferenceFintechId())
|
||||
.operation(Operation.builder()
|
||||
.recipientId(request.getId())
|
||||
.build())
|
||||
.channelId(request.getProcedureRequest().getInstructionPurposeType().name())
|
||||
.signature(request.getProcedureRequest().getInstructionDescription())
|
||||
.operation(
|
||||
Operation.builder()
|
||||
.recipientId(request.getPartyId())
|
||||
.dateCreate((!StringUtil.isNullOrEmpty(request.getInitiatedDate()))
|
||||
? request.getInitiatedDate()
|
||||
: null
|
||||
)
|
||||
.id((!StringUtil.isNullOrEmpty(request.getPaymentRequestId()))
|
||||
? Long.valueOf(request.getPaymentRequestId())
|
||||
: null
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.channelId(request.getChannelCode())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static List<ServicingOrderProcedure> toModel(List<PaymentOrder> response) {
|
||||
return response.stream().map(paymentOrder ->
|
||||
public static List<ServicingOrderProcedure> toBoleModel(List<PaymentOrderBole> response) {
|
||||
return response.stream().map(paymentOrderBole ->
|
||||
ServicingOrderProcedure.builder()
|
||||
.document(buildDocumentProduct(paymentOrder))
|
||||
.transaction(buildTransaction(paymentOrder))
|
||||
.document(buildDocumentProduct(paymentOrderBole))
|
||||
.transaction(buildBoleTransaction(paymentOrderBole))
|
||||
.build()
|
||||
).toList();
|
||||
}
|
||||
|
||||
private static Document buildDocumentProduct(PaymentOrder paymentOrder) {
|
||||
public static List<ServicingOrderProcedure> toBolModel(List<PaymentOrderBol> response) {
|
||||
return response.stream().map(paymentOrderBole ->
|
||||
ServicingOrderProcedure.builder()
|
||||
.transaction(buildBolTransaction(paymentOrderBole))
|
||||
.build()
|
||||
).toList();
|
||||
}
|
||||
|
||||
private static Document buildDocumentProduct(PaymentOrderBole paymentOrderBole) {
|
||||
return Document.builder()
|
||||
.documentName(paymentOrder.getFileName())
|
||||
.documentName(paymentOrderBole.getFileName())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static Transaction buildTransaction(PaymentOrder paymentOrder) {
|
||||
private static Transaction buildBoleTransaction(PaymentOrderBole paymentOrderBole) {
|
||||
return Transaction.builder()
|
||||
.transactionIdentification(Identifier.builder()
|
||||
.identifierValue(String.valueOf(paymentOrder.getNroRequest()))
|
||||
.identifierValue(String.valueOf(paymentOrderBole.getNroRequest()))
|
||||
.build())
|
||||
.transactionStatus(buildTransactionStatus(paymentOrder))
|
||||
.transactionDate(buildTransactionDateTimeList(paymentOrder))
|
||||
.transactionStatus(buildBoleTransactionStatus(paymentOrderBole))
|
||||
.transactionDate(buildBoleTransactionDateTimeList(paymentOrderBole))
|
||||
.transactionDetails(TransactionDetails.builder()
|
||||
.transactionQuantity(paymentOrder.getQuantity())
|
||||
.transactionQuantity(paymentOrderBole.getQuantity())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static TransactionStatus buildTransactionStatus(PaymentOrder paymentOrder) {
|
||||
return TransactionStatus.builder()
|
||||
.statusType(mapTransactionStatusType(paymentOrder.getStatus()))
|
||||
.statusName(paymentOrder.getStatus())
|
||||
.statusAccepted(paymentOrder.getAccepted())
|
||||
.statusRejected(paymentOrder.getRejected())
|
||||
.statusExpired(paymentOrder.getExpired())
|
||||
private static Transaction buildBolTransaction(PaymentOrderBol paymentOrderBol) {
|
||||
return Transaction.builder()
|
||||
.transactionIdentification(Identifier.builder()
|
||||
.identifierValue(String.valueOf(paymentOrderBol.getId()))
|
||||
.build())
|
||||
.transactionStatus(buildBolTransactionStatus(paymentOrderBol))
|
||||
.transactionDate(buildBolTransactionDateTimeList(paymentOrderBol))
|
||||
.transactionInvolvement(buildBolTransactionInvolvement(paymentOrderBol))
|
||||
.financialTransaction(buildBolFinancialTransaction(paymentOrderBol))
|
||||
.name(paymentOrderBol.getRequestType())
|
||||
.description(paymentOrderBol.getConcept())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static List<TransactionDateTime> buildTransactionDateTimeList(PaymentOrder paymentOrder) {
|
||||
private static TransactionStatus buildBoleTransactionStatus(PaymentOrderBole paymentOrderBole) {
|
||||
return TransactionStatus.builder()
|
||||
.statusType(mapTransactionStatusType(paymentOrderBole.getStatus()))
|
||||
.statusName(paymentOrderBole.getStatus())
|
||||
.statusAccepted(paymentOrderBole.getAccepted())
|
||||
.statusRejected(paymentOrderBole.getRejected())
|
||||
.statusExpired(paymentOrderBole.getExpired())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static TransactionStatus buildBolTransactionStatus(PaymentOrderBol paymentOrderBol) {
|
||||
return TransactionStatus.builder()
|
||||
.statusType(mapTransactionStatusType(paymentOrderBol.getStatus()))
|
||||
.statusName(paymentOrderBol.getStatus())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static List<TransactionDateTime> buildBoleTransactionDateTimeList(PaymentOrderBole paymentOrderBole) {
|
||||
return List.of(
|
||||
TransactionDateTime.builder()
|
||||
.dateType(TransactionDateTimeType.EXECUTED_DATE)
|
||||
.date(paymentOrder.getDispatchDate())
|
||||
.date(paymentOrderBole.getDispatchDate())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
private static List<TransactionDateTime> buildBolTransactionDateTimeList(PaymentOrderBol paymentOrderBol) {
|
||||
return List.of(
|
||||
TransactionDateTime.builder()
|
||||
.dateType(TransactionDateTimeType.INITIATED_DATE)
|
||||
.date(paymentOrderBol.getDateCreate())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
private static List<TransactionInvolvement> buildBolTransactionInvolvement(PaymentOrderBol paymentOrderBol) {
|
||||
return List.of(
|
||||
TransactionInvolvement.builder()
|
||||
.partyReference(
|
||||
Party.builder()
|
||||
.partyIdentification(List.of(
|
||||
PartyIdentification.builder()
|
||||
.partyIdentification(
|
||||
Identifier.builder()
|
||||
.identifierValue(paymentOrderBol.getEmitterReceptor())
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
))
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
private static FinancialTransaction buildBolFinancialTransaction(PaymentOrderBol paymentOrderBol) {
|
||||
return FinancialTransaction.builder()
|
||||
.amount(paymentOrderBol.getAmount())
|
||||
.currencyCode(paymentOrderBol.getCurrency())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static TransactionStatusType mapTransactionStatusType(String codeStatusRequest) {
|
||||
if (codeStatusRequest == null) {
|
||||
return TransactionStatusType.PENDING;
|
||||
@ -83,7 +161,8 @@ public class ServicingOrderMapper {
|
||||
return switch (codeStatusRequest.toUpperCase()) {
|
||||
case "PENDIENTE" -> TransactionStatusType.PENDING;
|
||||
case "EXITO", "EXITOSA", "COMPLETADO", "FINALIZADO" -> TransactionStatusType.COMPLETED;
|
||||
case "APROBADO", "CONFIRMADO" -> TransactionStatusType.CONFIRMED;
|
||||
case "APROBADO", "APROBADA" -> TransactionStatusType.APPROVED;
|
||||
case "CONFIRMADO", "CONFIRMADA" -> TransactionStatusType.CONFIRMED;
|
||||
case "INICIADO" -> TransactionStatusType.INITIATED;
|
||||
case "EN_PROCESO", "PROCESANDO", "EN CURSO" -> TransactionStatusType.IN_PROGRESS;
|
||||
case "RECHAZADO", "FALLIDO" -> TransactionStatusType.REJECTED;
|
||||
@ -93,7 +172,8 @@ public class ServicingOrderMapper {
|
||||
case "CONTABILIZADO" -> TransactionStatusType.BOOKED;
|
||||
case "EJECUTADO" -> TransactionStatusType.EXECUTED;
|
||||
case "EXP" -> TransactionStatusType.EXPIRED;
|
||||
case "ENVIADO" -> TransactionStatusType.SENT;
|
||||
case "ENVIADO", "ENVIADA" -> TransactionStatusType.SENT;
|
||||
case "RECIBIDO", "RECIBIDA" -> TransactionStatusType.RECEIVED;
|
||||
default -> TransactionStatusType.DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ public class ServiceOrderPaymentSearchResource {
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/retrieve/{partyReferenceId}/{channelCode}/{signatureIdentifier}")
|
||||
@Path("/retrieve/{partyReferenceId}/{channelCode}")
|
||||
@Operation(
|
||||
summary = "Recuperar informacion de la transaccion",
|
||||
description = "Consulta de una trasanccion de pago por id de archivo"
|
||||
@ -67,73 +67,234 @@ public class ServiceOrderPaymentSearchResource {
|
||||
)
|
||||
}
|
||||
),
|
||||
examples = @ExampleObject(
|
||||
name = "Ejemplo exitoso",
|
||||
value = """
|
||||
{
|
||||
"data": {
|
||||
"servicingOrderProcedure": [
|
||||
{
|
||||
"document": {
|
||||
"documentName": "TESTING.CSV"
|
||||
},
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "2"
|
||||
examples = {
|
||||
@ExampleObject(
|
||||
name = "Ejemplo exitoso (BOLE)",
|
||||
value = """
|
||||
{
|
||||
"data": {
|
||||
"servicingOrderProcedure": [
|
||||
{
|
||||
"document": {
|
||||
"documentName": "TESTING.CSV"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "PENDING",
|
||||
"statusName": "PENDIENTE",
|
||||
"statusAccepted": 0,
|
||||
"statusRejected": 0,
|
||||
"statusExpired": 2
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "EXECUTED_DATE",
|
||||
"date": "2026-01-05 14:35:45.0372395"
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "2"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "PENDING",
|
||||
"statusName": "PENDIENTE",
|
||||
"statusAccepted": 0,
|
||||
"statusRejected": 0,
|
||||
"statusExpired": 2
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "EXECUTED_DATE",
|
||||
"date": "2026-01-05 14:35:45.0372395"
|
||||
}
|
||||
],
|
||||
"transactionDetails": {
|
||||
"transactionQuantity": 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"document": {
|
||||
"documentName": "TESTING.CSV"
|
||||
},
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "3"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "IN_PROGRESS",
|
||||
"statusName": "EN CURSO",
|
||||
"statusAccepted": 0,
|
||||
"statusRejected": 0,
|
||||
"statusExpired": 5
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "EXECUTED_DATE",
|
||||
"date": "2026-01-05 14:39:52.3840159"
|
||||
}
|
||||
],
|
||||
"transactionDetails": {
|
||||
"transactionQuantity": 1000
|
||||
}
|
||||
],
|
||||
"transactionDetails": {
|
||||
"transactionQuantity": 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"document": {
|
||||
"documentName": "TESTING.CSV"
|
||||
]
|
||||
},
|
||||
"statusResponse": {
|
||||
"statusCode": "200",
|
||||
"message": "Operacion exitosa"
|
||||
}
|
||||
}
|
||||
"""
|
||||
),
|
||||
@ExampleObject(
|
||||
name = "Ejemplo exitoso (BOL)",
|
||||
value = """
|
||||
{
|
||||
"data": {
|
||||
"servicingOrderProcedure": [
|
||||
{
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "1"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "APPROVED",
|
||||
"statusName": "Aprobada"
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "INITIATED_DATE",
|
||||
"date": "2024-06-15T10:30:00Z"
|
||||
}
|
||||
],
|
||||
"transactionInvolvement": [
|
||||
{
|
||||
"partyReference": {
|
||||
"partyIdentification": [
|
||||
{
|
||||
"partyIdentification": {
|
||||
"identifierValue": "V20132859"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"financialTransaction": {
|
||||
"amount": 150.75,
|
||||
"currencyCode": "VES"
|
||||
},
|
||||
"name": "Enviada",
|
||||
"description": "cobro a pepito"
|
||||
}
|
||||
},
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "3"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "IN_PROGRESS",
|
||||
"statusName": "EN CURSO",
|
||||
"statusAccepted": 0,
|
||||
"statusRejected": 0,
|
||||
"statusExpired": 5
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "EXECUTED_DATE",
|
||||
"date": "2026-01-05 14:39:52.3840159"
|
||||
}
|
||||
],
|
||||
"transactionDetails": {
|
||||
"transactionQuantity": 1000
|
||||
{
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "2"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "PENDING",
|
||||
"statusName": "Pendiente"
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "INITIATED_DATE",
|
||||
"date": "2024-06-16T14:49:00Z"
|
||||
}
|
||||
],
|
||||
"transactionInvolvement": [
|
||||
{
|
||||
"partyReference": {
|
||||
"partyIdentification": [
|
||||
{
|
||||
"partyIdentification": {
|
||||
"identifierValue": "V20132859"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"financialTransaction": {
|
||||
"amount": 350.0,
|
||||
"currencyCode": "VES"
|
||||
},
|
||||
"name": "Recibida",
|
||||
"description": "pago a proveedor"
|
||||
}
|
||||
},
|
||||
{
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "3"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "REJECTED",
|
||||
"statusName": "Rechazado"
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "INITIATED_DATE",
|
||||
"date": "2024-06-17T09:15:00Z"
|
||||
}
|
||||
],
|
||||
"transactionInvolvement": [
|
||||
{
|
||||
"partyReference": {
|
||||
"partyIdentification": [
|
||||
{
|
||||
"partyIdentification": {
|
||||
"identifierValue": "V20132859"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"financialTransaction": {
|
||||
"amount": 200.0,
|
||||
"currencyCode": "VES"
|
||||
},
|
||||
"name": "Enviada",
|
||||
"description": "cobro a cliente"
|
||||
}
|
||||
},
|
||||
{
|
||||
"transaction": {
|
||||
"transactionIdentification": {
|
||||
"identifierValue": "4"
|
||||
},
|
||||
"transactionStatus": {
|
||||
"statusType": "APPROVED",
|
||||
"statusName": "Aprobada"
|
||||
},
|
||||
"transactionDate": [
|
||||
{
|
||||
"dateType": "INITIATED_DATE",
|
||||
"date": "2024-06-18T11:20:00Z"
|
||||
}
|
||||
],
|
||||
"transactionInvolvement": [
|
||||
{
|
||||
"partyReference": {
|
||||
"partyIdentification": [
|
||||
{
|
||||
"partyIdentification": {
|
||||
"identifierValue": "V20132859"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"financialTransaction": {
|
||||
"amount": 750.0,
|
||||
"currencyCode": "VES"
|
||||
},
|
||||
"name": "Recibida",
|
||||
"description": "pago a proveedor"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"statusResponse": {
|
||||
"statusCode": "200",
|
||||
"message": "Operacion exitosa"
|
||||
}
|
||||
}
|
||||
"""
|
||||
)
|
||||
]
|
||||
},
|
||||
"statusResponse": {
|
||||
"statusCode": "200",
|
||||
"message": "Operacion exitosa"
|
||||
}
|
||||
}
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
),
|
||||
@APIResponse(
|
||||
@ -272,17 +433,21 @@ public class ServiceOrderPaymentSearchResource {
|
||||
@Parameter(description = "Codigo del canal (BOL, BOLE)", required = true, example = "BOLE")
|
||||
String channelCode,
|
||||
|
||||
@PathParam("signatureIdentifier")
|
||||
@Parameter(description = "Firma del archivo", required = true, example = "f8c226f844339c55bf898162c5d7de5d8116cee6028e1b357414dcc686b3ea85")
|
||||
String signatureIdentifier,
|
||||
|
||||
@QueryParam("customerReferenceFintechId")
|
||||
@Parameter(description = "ID de la fintech", example = "pranical-test")
|
||||
String customerReferenceFintechId,
|
||||
|
||||
@QueryParam("appId")
|
||||
@Parameter(description = "ID de la aplicacion", example = "DANIAPP")
|
||||
String appId
|
||||
String appId,
|
||||
|
||||
@QueryParam("initiatedDate")
|
||||
@Parameter(description = "Fecha de creación", example = "2024-06-15T10:30:00Z")
|
||||
String initiatedDate,
|
||||
|
||||
@QueryParam("instructionRequestId")
|
||||
@Parameter(description = "ID de la peticion de pago", example = "1")
|
||||
String instructionRequestId
|
||||
) {
|
||||
log.info("Iniciando consulta para instruccion de archivo id: {}", partyReferenceId);
|
||||
|
||||
@ -292,7 +457,10 @@ public class ServiceOrderPaymentSearchResource {
|
||||
.customerReferenceFintechId(Objects.toString(customerReferenceFintechId, ""))
|
||||
.appId(Objects.toString(appId, ""))
|
||||
.procedureRequest(Instruction.fromResource(
|
||||
partyReferenceId, channelCode, signatureIdentifier
|
||||
partyReferenceId,
|
||||
initiatedDate,
|
||||
instructionRequestId,
|
||||
channelCode
|
||||
))
|
||||
.build()
|
||||
)).build();
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.banesco.module.transaction.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class FinancialTransaction {
|
||||
private BigDecimal amount; // BOL: amount
|
||||
private String currencyCode; // BOL: currency
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
package com.banesco.module.transaction.domain.model;
|
||||
|
||||
import com.banesco.common.domain.model.Identifier;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -12,9 +13,14 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Transaction {
|
||||
private Identifier transactionIdentification; // nroRequest
|
||||
private TransactionStatus transactionStatus; // status, accepted, rejected, expired
|
||||
private List<TransactionDateTime> transactionDate; // dispatchDate
|
||||
private TransactionDetails transactionDetails; // quantity
|
||||
private Identifier transactionIdentification; // BOLE: nroRequest | BOL: id
|
||||
private TransactionStatus transactionStatus; // BOLE: status, accepted, rejected, expired | BOL: status
|
||||
private List<TransactionDateTime> transactionDate; // BOLE: dispatchDate | BOL: dateCreate
|
||||
private TransactionDetails transactionDetails; // BOLE: quantity
|
||||
private List<TransactionInvolvement> transactionInvolvement; // BOL: emitterReceptor
|
||||
private FinancialTransaction financialTransaction; // BOL: amount, currency
|
||||
private String name; // BOL: requestType
|
||||
private String description; // BOL: concept
|
||||
}
|
||||
|
||||
@ -11,5 +11,5 @@ import lombok.*;
|
||||
@RegisterForReflection
|
||||
public class TransactionDateTime {
|
||||
private TransactionDateTimeType dateType;
|
||||
private String date;
|
||||
private String date; // BOLE: dispatchDate | BOL: dateCreate
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.banesco.module.transaction.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -11,6 +12,7 @@ import java.math.BigDecimal;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class TransactionDetails {
|
||||
private BigDecimal transactionQuantity; // quantity
|
||||
private BigDecimal transactionQuantity; // BOLE: quantity
|
||||
}
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.banesco.module.transaction.domain.model;
|
||||
|
||||
import com.banesco.module.party.domain.model.Party;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class TransactionInvolvement {
|
||||
private Party partyReference; // BOL: emitterReceptor
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.banesco.module.transaction.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
@ -9,10 +10,11 @@ import lombok.*;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class TransactionStatus {
|
||||
private TransactionStatusType statusType; // status
|
||||
private String statusName; // status
|
||||
private Long statusAccepted; // accepted
|
||||
private Long statusRejected; // rejected
|
||||
private Long statusExpired; // expired
|
||||
private TransactionStatusType statusType; // BOLE: status | BOL: status
|
||||
private String statusName; // BOLE: status | BOL: status
|
||||
private Long statusAccepted; // BOLE: accepted
|
||||
private Long statusRejected; // BOLE: rejected
|
||||
private Long statusExpired; // BOLE: expired
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ public enum TransactionStatusType {
|
||||
EXECUTED,
|
||||
CANCELLED,
|
||||
CONFIRMED,
|
||||
APPROVED,
|
||||
SUSPENDED,
|
||||
PENDING,
|
||||
COMPLETED,
|
||||
@ -15,4 +16,5 @@ public enum TransactionStatusType {
|
||||
REJECTED,
|
||||
EXPIRED,
|
||||
SENT,
|
||||
RECEIVED,
|
||||
}
|
||||
|
||||
@ -15,4 +15,4 @@ api:
|
||||
key: 'dom-service-order-payment-search'
|
||||
content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"backendCode":"R404","httpCode":404,"statusCode":"404","description":"Datos de validacion no encontrado."},{"backendCode":"503","httpCode":503,"statusCode":"503","description":"Uso interno"},{"backendCode":"422","httpCode":422,"statusCode":"422","description":"Uso interno"},{"backendCode":"500","httpCode":500,"statusCode":"500","description":"Uso interno"},{"backendCode":"100","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-382505","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-380002","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"ERROR","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"400","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"401","httpCode":401,"statusCode":"401","description":"Uso interno"},{"backendCode":"403","httpCode":403,"statusCode":"403","description":"Uso interno"},{"backendCode":"404","httpCode":404,"statusCode":"404","description":"Uso interno"},{"backendCode":"default","httpCode":409,"statusCode":"409","description":"Conflicto"},{"backendCode":"424","httpCode":424,"statusCode":"424","description":"Error de dependencia"},{"backendCode":"VDE01","httpCode":400,"statusCode":"VDE01","description":"VDE01 - Error en dato de entrada obligatorio: %s"},{"backendCode":"VDE02","httpCode":400,"statusCode":"VDE02","description":"VDE02 - Error en valor permitido para campo: %s"},{"backend_code":"204","http_code":"200","status_code":"200","description":"Cliente sin productos","status":"ok"}]'
|
||||
rest-client:
|
||||
payment-status-by-id: '{"url":"http://10.135.193.156:8080/RequestPayment/notificationRequestPayment/v1/querys/getGeneralRequestPayByParams/{signatureIdentifier}","timeout":{"connect":10000,"response":10000},"statusSuccess":"00"}'
|
||||
payment-order-by-parameters: '{"url":"http://10.135.193.156:8080/RequestPayment/notificationRequestPayment/v1/querys/getGeneralRequestPayByParams/{signatureIdentifier}","timeout":{"connect":10000,"response":10000},"statusSuccess":"00"}'
|
||||
Loading…
x
Reference in New Issue
Block a user