FraudCheckController.java
Bridget/payment-gateway-microservices/services/fraud-check-service/src/main/java/com/checkout/paymentgw/fraud/api/FraudCheckController.java
package com.checkout.paymentgw.fraud.api;
import com.checkout.paymentgw.fraud.engine.FraudEngine;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/internal")
public class FraudCheckController {
private final FraudEngine engine;
public FraudCheckController(FraudEngine engine) {
this.engine = engine;
}
@PostMapping("/screen")
public Decision screen(@RequestHeader(value = "X-Merchant-Id", defaultValue = "anonymous") String merchantId,
@RequestBody ScreenRequest request) {
return engine.evaluate(merchantId, request);
}
public record ScreenRequest(
@NotBlank @JsonProperty("card_number") String cardNumber,
@NotBlank String currency,
@NotNull Integer amount) {}
public record Decision(String decision, List<String> reasons) {}
}
相关文章
PaymentGatewayApplication.java
PaymentGatewayApplication.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/PaymentGatewayApplication.java).
阅读文章 →ApplicationConfiguration.java
ApplicationConfiguration.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/ApplicationConfiguration.java).
阅读文章 →RequestResponseLogger.java
RequestResponseLogger.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/RequestResponseLogger.java).
阅读文章 →PaymentGatewayController.java
PaymentGatewayController.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/controller/PaymentGatewayController.java).
阅读文章 →PaymentStatus.java
PaymentStatus.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/enums/PaymentStatus.java).
阅读文章 →BankErrorException.java
BankErrorException.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/exception/BankErrorException.java).
阅读文章 →