gimmickbutreal
토스페이먼츠 API Hook 연동 본문
WebHook을 사용해 결제상태를 변경할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// lombok 라이브러리를 사용하여 getter, setter 등의 메서드를 자동으로 생성
import lombok.Data;
// Hook 클래스 선언
@Data
public class Hook {
// createAt: Hook 생성 시간
private String createAt;
// secret: Hook 인증을 위한 secret key
private String secret;
// status: Hook 처리 결과 상태 (e.g., "주문완료", "주문실패" )
private String status;
// transactionKey: Toss 결제 거래 고유 키
private String transactionKey;
// orderId: Toss 결제 거래 주문번호
private String orderId;
// customerMobilePhone: Toss 결제 거래 고객 휴대폰번호
private String customerMobilePhone;
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@RestController
@RequestMapping("/link")
@RequiredArgsConstructor // 생성자를 통한 의존성 주입을 자동으로 수행
public class HookController {
// 주문 서비스를 의존성 주입(Dependency Injection) 받음
private final OrderService orderService;
// TossHook 객체를 전달받아 처리하는 POST 요청 핸들러 메서드
@PostMapping("/order")
public String orderMessage(@RequestBody Hook hook) {
// hook 객체를 출력하여 확인
System.out.println("hook : " + hook);
// hook 객체의 주문 상태가 "DONE"일 경우 "주문완료"로 변경하고, 그 외에는 "주문실패"
if(hook.getStatus().equals("DONE")) {
hook.setStatus("주문완료");
} else {
hook.setStatus("주문실패");
}
// OrderService를 사용하여 hook 객체의 주문 상태를 업데이트
orderService.updateOrder(hook.getStatus(), hook.getOrderId());
// 요청 처리 완료를 의미하는 문자열 반환
return "성공";
}
}
|
cs |
'Programming > Spring Boot' 카테고리의 다른 글
[Springboot/Java] QR 코드 생성/저장/출력 (0) | 2023.03.12 |
---|---|
[Spring Boot] 영속성 컨텍스트 (Persistence Context) (0) | 2022.09.06 |
[Spring Boot] 타임리프(Thymeleaf) URL (0) | 2022.09.01 |
[Spring Boot] 서비스(Service)가 필요한 이유 (0) | 2022.09.01 |
[Spring Boot] GetMapping 애노테이션 (0) | 2022.08.13 |