나이스 페이먼츠 결제 서비스 연동하기 - 팝업창 불러오고 카드사 인증하기 (1)

2025. 11. 30. 21:44·New Project/나이스 페이먼츠 결제 서비스 연동

 

이제 본격적으로 개발을 시작해보자.

 

IntelliJ IDEA 에서 Spring boot 프로젝트를 개설하자

 

소스코드 보기


HomeController.java

package com.example.nicepayments.controller;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home() {
        return "index";
    }

    @PostMapping("/serverAuth")
    public ResponseEntity<?> serverAuthCallback(@RequestParam Map<String, String> params) {
        System.out.println("serverAuthCallback 실행");
        return ResponseEntity.ok().build();
    }

}

 

index.jsp ( 반드시 src/main/webapp/WEB-INF/views/ 밑에 위치 시켜야 함. )

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
    <title>NICEPAY TEST</title>
    <script src="https://pay.nicepay.co.kr/v1/js/"></script>
    <script>
        function serverAuth() {
            AUTHNICE.requestPay({
                clientId: '{나이스페이 관리자 Client KEY 값}',
                method: 'card',
                orderId: 'bingbong-order-1234',
                amount: 1004,
                goodsName: '빙봉 필통',
                vbankHolder: '나이스',
                returnUrl: 'http://localhost:8080/serverAuth',
                fnError: function (error) {
                    console.log("결제 오류:", error);
                    alert("에러발생");
                }
            });
        }
    </script>
</head>
<body>
<h2>NICEPAY 테스트</h2>

<button onclick="serverAuth()">결제 요청</button>

</body>
</html>

 

참고로, 저기서 method 값이 vbank 이면, 가상계좌 목록이 나타난다. 지금은 card 이기 때문에 카드로 결제하는 팝업 창이 뜬다.

 

application.yml

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

server:
  port: 8080

 

build.gradle.kts

plugins {
    java
    id("org.springframework.boot") version "4.0.0"
    id("io.spring.dependency-management") version "1.1.7"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"
description = "nicePayments"

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-webmvc")
    implementation("org.apache.tomcat.embed:tomcat-embed-jasper")
    implementation("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api")
    implementation("org.glassfish.web:jakarta.servlet.jsp.jstl")

    testImplementation("org.springframework.boot:spring-boot-starter-webmvc-test")
}

tasks.withType<Test> {
    useJUnitPlatform()
}

 

 

실행 결과


 

결제 요청 버튼을 눌렀더니, 저렇게 결제 팝업 창이 떴다. 😍 

 

효자 솔루션이구나 나이스 페이먼츠. 고생시키지 않고 바로 떠주다니..

 

 

결제 해보자.


 

토스뱅크로 선택하고 다음 버튼을 클릭해보았다.

 

 

위 사진에서 1004원 결제 버튼을 눌렀더니 ...

 

아 ... 왜 하나카드가 뜨는거야 ... 이거는 나이스페이먼츠 내부 오류 같다.

 

그래서 그냥 신한카드로 변경하여 다시 진행했다..

 

 

이렇게 카드사 인증 서비스까지 무사히 도착한 모습이다.

 

신한 SOL Pay 로 1004 원 결제를 마쳤다.

 

 

서버의 serverAuthCallback 메서드


 

브레이크 포인트가 잘 동작 했고,

 

 

콘솔에도 예쁘게 print 문이 출력 되었고,

 

 

parameter 도 예쁘게 전송 되었다.

 

지금 우리는 저 그림속에서 

 

'returnUrl' 서버단에서 인증 결과를 받는 것까지 구현했다.

 

그런데, 구현을 다 하고 나서 보니까 나이스페이먼츠 개발자 깃허브에서

 

Java 로 된 Controller 예제 파일을 공유하고 있었음 .. 😱

 

여러분은 나같은 실수를 안하길 바라며,

 

위의 내가 적은 컨트롤러 코드는 정말 참고만 하고

 

실제 코드는 아래 주소에 있는 코드로 구현해보는 것이 좋겠다.

 

https://github.com/nicepayments/nicepay-java/blob/master/gradle/server-auth/src/main/java/com/nicepay/demo/NicepayController.java

 

nicepay-java/gradle/server-auth/src/main/java/com/nicepay/demo/NicepayController.java at master · nicepayments/nicepay-java

java sample for nicepay. Contribute to nicepayments/nicepay-java development by creating an account on GitHub.

github.com

 

아, 그리고 인증을 성공한거고, 결제 승인을 하지 않았으므로 실 결제는 이루어지지 않는 것 같다.

 

이상으로 이번 포스트 마치고 다음 포스트로 돌아오겠다.

 

바이바이

'New Project > 나이스 페이먼츠 결제 서비스 연동' 카테고리의 다른 글

나이스 페이먼츠 결제 서비스 연동하기 - 개발환경 구축하기 (0)  (0) 2025.11.30
'New Project/나이스 페이먼츠 결제 서비스 연동' 카테고리의 다른 글
  • 나이스 페이먼츠 결제 서비스 연동하기 - 개발환경 구축하기 (0)
빙봉이
빙봉이
개발 관련 내용 80퍼센트, 저의 일상 내용 20퍼센트로 컨텐츠 비율을 조절하는 중입니다.
  • 빙봉이
    빙봉씨의 개발 블로그
    빙봉이
  • 전체
    오늘
    어제
    • 전체 글 (41)
      • MSA Spring Cloud (3)
      • Java (1)
      • Spring Boot (1)
      • 알고리즘 (9)
      • IDE (4)
      • Error (2)
      • Refactor (1)
      • Debug (1)
      • Front End (1)
      • New Project (9)
        • WorkSphere 360 (6)
        • 모바일 신분증 (1)
        • 나이스 페이먼츠 결제 서비스 연동 (2)
      • 취미 (9)
        • 게임 (8)
        • 애니 (1)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    롤
    결제 API 구현해보기
    블로그
    Android Studio
    Spring
    코딩테스트
    java
    SP 서버
    자료구조
    MSA
    jira 용어 설명
    데이터베이스 선정 기준
    나이스페이먼츠 결제
    감성
    요구사항 작성
    프로젝트 생성 방법
    결제 API
    worksphere 360
    결제 개발
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
빙봉이
나이스 페이먼츠 결제 서비스 연동하기 - 팝업창 불러오고 카드사 인증하기 (1)
상단으로

티스토리툴바