이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon

체크사항

1.

KG이니시스의 정기결제는 결제창 방식REST API 방식으로 구분됩니다.

2.

KG이니시스 테스트 모드의 경우 실제 출금 되지만 매일 23:00~23:50분 사이 자동 취소됩니다.

3.

KG이니시스의 경우 정기결제 시 PC환경에서 공인인증절차가 필요합니다.

설정 방법

1. 아임포트 관리자콘솔에서 회원가입

2. 테스트 모드 설정

카드사 심사 완료 후에는 KG이니시스에서 발급받은 실상점 정보로 설정 해야 합니다.

1) 결제창 방식

PG상점아이디(MID) : INIBillTst

웹표준결제 signKey : SU5JTElURV9UUklQTEVERVNfS0VZU1RS

빌링용 merchantKey : b09LVzhuTGZVaEY1WmJoQnZzdXpRdz09

이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon

2) REST API 방식

PG상점아이디(MID) : INIBillTst

PG설정은 ‘새로운 관리자콘솔’에서 진행 가능합니다. 테스트모드 수정/추가 필요하시면, 아임포트 고객센터로 요청 주시기 바랍니다.

KG이니시스 'API(폼페이)방식'은 PG사를 통해 입점가능여부 확인이 우선적으로 필요합니다. 대부분의 경우 '결제창방식'으로 지원되며, 'API방식'은 PG사 정책으로 인하여 입점이 까다로운 점 참고부탁드립니다.

이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon

<참고> PG사를 여러개 이용중이신 경우, { PG사 코드값 }.{ PG사 상점아이디 } 지정하여 호출되도록 구현바랍니다.

3. 결제 연동

[디앤디랩][IT개발실] 쇼핑몰에 정기배송, 정기결제 구현하기! - KG이니시스(빌링 서비스)

이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon



오늘은 쇼핑몰에 정기배송, 정기결제 구현하는 방법에 대해 알아보려고 해요!
찾아보면 PG사 마다 정기결제 API를 지원하겠지만
저는 KG이니시스에서 부가서비스로 지원하는
빌링서비스(정기결제)를 이용해서 구현 하였습니다!



이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon

미리 등록한 신용카드 또는 핸드폰 인증을 통하여 BillKey 발급 후
해당 Billkey를 통한 정기적인 결제 요청

제가 확인해보고 알고있는 것으로는
핸드폰 결제는 결제에 제약이 많습니다......
신용카드는 언제든지 billkey와 각종 데이터를 빌링 모듈에 태워 전송하기만 하면 되지만
핸드폰 결제는 통신사 정책 상 한달에 1회
결제일 기준 한달 +- 5일 입니다.
예를 들어 5월 18일이 billkey 발급일 이라면, 다음달 13일~23일 이내에 결제를 올려야 합니다.

간략하게 프로세스를 설명 드리자면

원하는 상품 구매 시 배송을 원하는 날짜(희망 배송일)와, 주기를 선택 합니다.
예를 들어 3월21일, 주기는 1달 이면 
매달 21일에 결제를 요청 하면 됩니다.

물론 희망배송일과 주기는 주문 DB에 저장 해야합니다!

핸드폰 결제는 원하는 상품 결제 시 빌링 모듈을 바로 열어서 결제 후 billkey가 발급되면
회원 DB 또는 주문 DB에 삽입하여 사용 하셔야 합니다. 
간단하지만 앞서 말씀 드렸던 것 처럼, 결제 요청에 대한 날짜 제약이 있습니다.

신용카드 결제는 카드 등록 페이지를 만드셔서 미리 회원이 신용카드를 등록 하실 수 있게 하셔야합니다.
카드 등록을 통한 billkey 발급되면 회원 DB에 회원별로 저장 하시면 됩니다.
여러개든 한개든 개발자 역량껏 커스터마이징 할 수 있을 것 입니다.
원하는 상품 결제 시 일반 PG의 결제 방식이 아닌 빌링 서비스의 결제 방식 선택  후 

결제(주문) 시 핸드폰 결제의 경우는 표준 결제창이 지원되나
신용카드의 경우는 단순히 billkey만 빌링 모듈에 태워서 승인 요청을 보내기만 하면 결제가 되기 때문에
표준 결제창이 지원되지 않습니다.

결제가 모두 완료되면 쇼핑몰 기본 주문 DB 이외에
정기 결제 DB 를 생성하여서 다음 정기배송 데이터를 저장합니다.
저는 그 데이터에 다음 정기배송일자(결제 예정일)까지 계산해서 저장해 뒀습니다.

추가적으로.. 결제에 대한 스텝(대기,취소,완료,실패 등) 은 넣어주세요.. 기타 다른 값들은
개발자분이 진행하시면서 필수적 느끼셔서 넣으실 겁니다.

지금까지는 단순히 1회 결제, 빌키 발급에 대해서 알아 보았습니다.

하지만 이게 전부에요.....

제일 처음 말씀 드렸던데로 정기 결제는 billkey를 통한 결제 요청입니다.
그 말은 billkey와 결제정보만 있다면 언제든지 주문을 삽입,결제가 가능 하다는 말이겠죠?

저는 이 정기결제 DB + 1회 구매 프로세스 + 빌링서비스를 합쳐서
프로그램을 만든 뒤 크론탭을 이용하여

정기배송 DB 의 데이터 중

"오늘이 결제 예정일이면서 결제 상태가 대기중인 데이터"

위 데이터를 불러와서 1회 구매 프로세스에 태워줍니다.
여러건의 데이터가 있을 수 있으니 반복문은 필수적으로 해주시구요 !
구매 프로세스의 경우는 각 솔루션 마다 다르니, 잘 파악하셔서
카피 및 생성 해주시고, 마지막으로는 빌링 모듈에 태워서 결제 후
또 다음 정기 결제 주문건을 계속 삽입 합니다.

저는 이렇게 계속 주문 및 결제 + 다음 주문 삽입 으로 정기 결제 프로세스를 구현 했습니다.

소스는 모두 KG 이니시스 가맹사에서 제공되기 때문에 
리뷰를 해드릴 수 없네요 ㅠ^ㅠ

저는 제가 구현 한 방식에 대해
설명 드렸을 뿐 !
프로그래밍은 당신의 몫 입니다.

그리고 친절한 KG 이니시스 기술 지원센터님들 감사해요 , , ,
메일 답장 너무 빠르고 친절한 것 ,,

이니시스 정기결제 구현 - inisiseu jeong-gigyeolje guhyeon