본문 바로가기
Language/Spring

[JAVA, SPRING, BOOTPAY] 부트페이 정기결제(자동결제)

by tyrannojung 2020. 12. 3.
반응형

부트페이 검증 : tyrannocoding.tistory.com/11

 

[JAVA, SPRING] 부트페이 검증하기(SERVER)

부트페이 연동 : tyrannocoding.tistory.com/10 [JAVA, SPRING] 부트페이 연동(WEB) 부트페이란?  부트페이(Bootpay)는 무료로 서비스되는 결제 연동 API 입니다.  장점으로는 PG 계약과 상관없이 즉시 개발이..

tyrannocoding.tistory.com

부트페이 검증 이후 게시글입니다.

 

 

부트페이 정기결제

 부트페이에서는 REST API를 통해 카드 정기결제 서비스를 제공하고 있습니다.  카드 정기 결제 방식에는 크게 2가지가 있습니다.

 

1. 일반 PG결제처럼 PG사가 제공하는 카드 정보 입력 페이지로 넘어간 후 빌링 키를 받은 후 REST API로 정기 결제 승인을 요청하는 방식(다날,KCP,이니시스 등)

2. REST API로 카드 정보를 PG사로 넘겨 빌링키를 받은 후 REST API로 정기 결제 승인을 요청하는 방식 (나이스페이, 페이앱)

 

나이스페이로의 진행을 위해 우리는 REST API로 카드 정보를 PG사로 넘겨 1. 빌링 키를 받은 후 2.REST API로 결제처리를 진행해 보겠습니다.

 

 

 

빌링 키 받기

 우선 빌링 키란 정기 결제를 할 수 있도록 PG사에서 발급해주는 키입니다. 이것을 이용하여 PG사로 결제를 요청하면 처음 입력한 카드번호로 결제가 됩니다. REST API를 통해 빌링 키를 발급받아보겠습니다.

 

 

※ api 객체 만들기와 토큰 발급이 선행되어야 합니다. ( 앞 게시글 참조 )

 

 

 

 

 빌링 키 발급을 위해서는 SubscribeBilling 데이터 타입의 객체를 넘겨줘야 합니다. 객체의 필수 값은 아래와 같이 작성해 줍니다.

 

 

SubscribeBilling subscribeBilling = new SubscribeBilling();
    	subscribeBilling.item_name = "정기결제 테스트"; // 아이템명
    	subscribeBilling.order_id = "1234asd12345"; // 주문번호
    	subscribeBilling.price = 100; // 가격
    	subscribeBilling.pg = "nicepay"; // 결제사
    	subscribeBilling.card_no = "***9880********"; //카드번호
    	subscribeBilling.card_pw = "****";  //카드비밀번호
    	subscribeBilling.expire_month = "0*"; // 유효기간 월
    	subscribeBilling.expire_year = "2*"; // 유효기간 년
    	subscribeBilling.identify_number="**07**"; // 카드주 생년월일 6자리

객체를 만든후 담아서 보내준다.

 

빌링키

 

 성공적으로 발급이 완료가 되면, json형태의 빌링 키를 저장해 줍니다. 이 빌링키를 이용해서 우리는 정기결제, 자동결제를 진행할 수 있습니다. 빌링키에는 위 SubscribeBilling의 정보들이 저장되어 있습니다. 정기결제를 원하면 해당 빌링키를 저장하여 주기적으로 결제를 진행해 주면 되며, 만약 자동결제를 원하면 빌링 키 발급후 -> 결제 -> 빌링키 삭제를 진행하면 되겠습니다.

 

 

 

빌링 키를 이용한 결제

 결제는 subscribe_billing 메소드로 진행을 합니다. 앞전의 SubscribeBilling 객체에 발급받은 billing_key만 넣어주면 해당 카드로 정상적으로 결제가 진행이 됩니다.

 

 

 

빌링 키 삭제

 빌링키 삭제는 삭제를 원하는 빌링 키만 매개변수로 넣어주면 됩니다.

 

 

마치며

 앞전 게시글에 토큰을 어떻게 발급하는지, json 파싱이라던지, 객체를 어떤 식으로 만들었는지에 대해 적어놨기 때문에 여기서는 따로 다루지 않았습니다. 궁금하신 점이나 제 글에 부족한 점이 보이면 댓글로 부탁드립니다!

반응형

댓글