diff --git a/src/main/java/com/kms/service/PaymentService.java b/src/main/java/com/kms/service/PaymentService.java index f766a3f608b402f2c833979216364e14eb008fe1..4bd791a4191ff16cc0c2ac8f830e21c847ed0deb 100644 --- a/src/main/java/com/kms/service/PaymentService.java +++ b/src/main/java/com/kms/service/PaymentService.java @@ -1,6 +1,7 @@ package com.kms.service; import com.j256.ormlite.dao.Dao; +import com.kms.crosscut.SoapFaultHelper; import com.kms.dto.payment.PaymentInitReq; import com.kms.dto.payment.PaymentInitResp; import com.kms.dto.payment.PaymentStatusResp; @@ -24,6 +25,7 @@ public class PaymentService { @WebMethod public PaymentInitResp initPayment(@WebParam(name = "req") PaymentInitReq req) { + verifyInitPaymentData(req); try { List<Payment> idempotentCheck = paymentDao.queryForMatching(Payment.builder() .initiatorId(req.getInitiatorId()) @@ -67,4 +69,17 @@ public class PaymentService { return new PaymentStatusResp(null, "Unexpected error has happened"); } } + + private void verifyInitPaymentData(PaymentInitReq req) { + if (req.getInitiatorId() == null) { + SoapFaultHelper.throwFault("InvalidRequest", "Payment initiator id is empty"); + } + if (req.getIdempotentId() == null) { + SoapFaultHelper.throwFault("InvalidRequest", "Payment idempotent id is empty"); + } + if (req.getAmount() <= 0) { + SoapFaultHelper.throwFault("InvalidRequest", "Payment amount is invalid"); + } + } + }