-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
94 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
src/main/java/com/soongsil/poppin/user/application/PaymentService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package com.soongsil.poppin.user.application; | ||
|
||
import com.siot.IamportRestClient.IamportClient; | ||
import com.siot.IamportRestClient.exception.IamportResponseException; | ||
import com.siot.IamportRestClient.response.IamportResponse; | ||
import com.siot.IamportRestClient.response.Payment; | ||
import com.soongsil.poppin.global.response.ErrorCode; | ||
import com.soongsil.poppin.user.application.exception.UserException; | ||
import com.soongsil.poppin.user.application.response.PaymentDto; | ||
import com.soongsil.poppin.user.domain.Member; | ||
import com.soongsil.poppin.user.domain.UserRepository; | ||
import lombok.extern.log4j.Log4j2; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import java.io.IOException; | ||
|
||
@Service | ||
@Transactional | ||
@Log4j2 | ||
public class PaymentService { | ||
private final IamportClient iamportClient; | ||
private final UserRepository userRepository; | ||
|
||
public PaymentService(UserRepository userRepository) { | ||
this.userRepository = userRepository; | ||
this.iamportClient = new IamportClient("8754401450070487", "oU0hOQPSSuFLK6qSfLZZRrprvF3pqz3K0OOniDSvrS58RfR6sPFZnhXhVt7Av9AVPtPqItaiuL43BLR1"); | ||
} | ||
|
||
public PaymentDto verifyPayment(String imp_uid) throws IamportResponseException, IOException { | ||
IamportResponse<Payment> iamportResponse = iamportClient.paymentByImpUid(imp_uid); // 결제 검증 시작 | ||
Long amount = (iamportResponse.getResponse().getAmount()).longValue(); // 결제 금액 | ||
String nickname = iamportResponse.getResponse().getBuyerName(); // 유저 닉네임 | ||
String status = iamportResponse.getResponse().getStatus(); // Paid 이면 1 | ||
|
||
Member result = userRepository.findBynickName(nickname); | ||
if (result == null) { | ||
throw new UserException(ErrorCode.USER_NOT_FOUND); | ||
} | ||
|
||
Long newPoint = result.getPoint() + amount; | ||
result.setPoint(newPoint); | ||
|
||
userRepository.save(result); | ||
|
||
PaymentDto paymentDto = PaymentDto.builder() | ||
.impuid(imp_uid) | ||
.amount(newPoint) | ||
.nickname(nickname) | ||
.status(amount + "포인트가 충전되었습니다.") | ||
.build(); | ||
|
||
return paymentDto; | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
src/main/java/com/soongsil/poppin/user/application/response/PaymentDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.soongsil.poppin.user.application.response; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@AllArgsConstructor | ||
@Getter | ||
@Setter | ||
@Builder | ||
public class PaymentDto { | ||
private String impuid; // 거래 고유 번호 | ||
private String nickname; // 사용자 닉네임 | ||
private String status; // 결제 여부 paid = 1, 그 외 실패 | ||
private Long amount; // 결제 금액 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters