Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,38 @@ public ResponseEntity<ApiResponse<String>> success(

log.info("[KAKAO SUCCESS] paymentId={}, pg_token={}", paymentId, pgToken);

String deepLink = UriComponentsBuilder.newInstance()
.scheme("myapp").host("pay").path("/success")
.queryParam("paymentId", paymentId)
.queryParam("pg_token", pgToken)
.build(true).toUriString();
String query = "paymentId=" + paymentId
+ "&pg_token=" + java.net.URLEncoder.encode(pgToken, java.nio.charset.StandardCharsets.UTF_8);

log.info("DeepLink constructed: {}", deepLink);
String intentUrl = "intent://pay/success?" + query
+ "#Intent;scheme=myapp;package=com.example.sumte;end";

log.info("Intent URL constructed: {}", intentUrl);

HttpHeaders headers = new HttpHeaders();
headers.setLocation(URI.create(deepLink));
headers.setLocation(java.net.URI.create(intentUrl));
log.info("Responding 302 with Location: {}", headers.getLocation());

// 바디엔 확인용으로 동일 문자열 내려줌
return ResponseEntity.status(HttpStatus.FOUND)
.headers(headers)
.body(ApiResponse.success(deepLink));
.body(ApiResponse.success(intentUrl));

// String deepLink = UriComponentsBuilder.newInstance()
// .scheme("myapp").host("pay").path("/success")
// .queryParam("paymentId", paymentId)
// .queryParam("pg_token", pgToken)
// .build(true).toUriString();
//
// log.info("DeepLink constructed: {}", deepLink);

// HttpHeaders headers = new HttpHeaders();
// headers.setLocation(URI.create(deepLink));
// log.info("Responding 302 with Location: {}", headers.getLocation());
//
// return ResponseEntity.status(HttpStatus.FOUND)
// .headers(headers)
// .body(ApiResponse.success(deepLink));
}

@GetMapping("/pay/cancel")
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/sumte/payment/controller/PaymentController.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,14 @@ public ResponseEntity<ApiResponse<KakaoPayApproveResponseDTO>> approvePayment(
KakaoPayApproveResponseDTO response = paymentService.approvePayment(id, pgToken);
return ResponseEntity.ok(ApiResponse.success(response));
}

@PatchMapping("/{id}/approve/manual")
@Operation(
summary = "임의 결제 승인 API (테스트/관리자용)",
description = "paymentId로 결제를 강제 승인(PAID) 처리합니다."
)
public ResponseEntity<ApiResponse<String>> approvePaymentManually(@PathVariable("id") Long id) {
paymentService.approvePaymentManually(id);
return ResponseEntity.ok(ApiResponse.success("PAID"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
public interface PaymentService {
PaymentResponseDTO.PaymentReadyResponse requestPayment(PaymentRequestDTO.PaymentRequestCreate dto);
KakaoPayApproveResponseDTO approvePayment(Long paymentId, String pgToken);
void approvePaymentManually(Long paymentId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,11 @@ public KakaoPayApproveResponseDTO approvePayment(Long paymentId, String pgToken)

return response;
}

@Override
@Transactional
public void approvePaymentManually(Long paymentId) {
paymentRepository.findById(paymentId)
.ifPresent(Payment::markAsPaid); // 없으면 아무 것도 안 함 (예외 X)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public ReservationResponseDTO.MyReservationDTO toMyReservationDTO(Reservation re
.guestHouseName(guestHouse.getName())
.roomName(room.getName())
.roomId(room.getId())
.reservedAt(reservation.getCreatedAt())
.imageUrl(firstRoomImageUrl)
.startDate(reservation.getStartDate())
.endDate(reservation.getEndDate())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public static class MyReservationDTO {
private String guestHouseName;
private String roomName;
private Long roomId;
private LocalDateTime reservedAt;
private String imageUrl;
private LocalDate startDate;
private LocalDate endDate;
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/sumte/review/dto/ReviewRequestDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
Expand All @@ -18,7 +17,6 @@ public class ReviewRequestDto {
@NotNull
private Long roomId;

@NotBlank
private String contents;

@Min(1)
Expand Down