나는 국비 학원에서 진행한 3차 프로젝트 '온라인 패션 플랫폼'에서 활용할 수 있는 가상 결제 api를 찾아 보던 중, '아임포트'라는 사이트를 발견했다. '아임포트'에서는 개발자들이 토이 프로젝트 등에 활용할 수 있도록 다양한 가상 결제 api를 제공한다. 나는 아임포트에서 제공하는 많은 가상 결제 api 중에서도 현재 많은 사이트에서 사용되고 있는 KG 이니시스 가상 결제 api를 활용했다.
아임포트 (https://www.iamport.kr/) 사이트에 접속한다.
우측 상단의 '대시보드'라고 적힌 파란색 버튼을 클릭하여 회원가입 후, 로그인한다.
대시보드 페이지의 시스템 설정 > 내 정보 메뉴를 클릭하여, 가맹점 식별코드, REST API 키, REST API secret 정보를 확인한다.
시스템 설정 > PG설정 (일반결제 및 정기결제) 메뉴를 클릭하여,기본 PG사 탭에서 KG이니시스(웹표준결제창)을 선택하고, 전체 저장을 클릭한다. (PG사 추가를 클릭하여 여러 개의 PG사를 설정할 수 있으나, 유료 서비스이다.)
가상결제 API를 사용할 페이지에 아임포트 CDN을 추가해준다.
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.1.5.js"></script>
$(".btn_payment").click(function() {
//class가 btn_payment인 태그를 선택했을 때 작동한다.
IMP.init(/*'가맹점 식별코드'*/);
//결제시 전달되는 정보
IMP.request_pay({
pg : 'inicis',
pay_method : 'card',
merchant_uid : 'merchant_' + new Date().getTime(),
name : '주문명:결제테스트'/*상품명*/,
amount : 1000/*상품 가격*/,
buyer_email : 'iamport@siot.do'/*구매자 이메일*/,
buyer_name : '구매자이름',
buyer_tel : '010-1234-5678'/*구매자 연락처*/,
buyer_addr : '서울특별시 강남구 삼성동'/*구매자 주소*/,
buyer_postcode : '123-456'/*구매자 우편번호*/
}, function(rsp) {
var result = '';
if ( rsp.success ) {
var msg = '결제가 완료되었습니다.';
msg += '고유ID : ' + rsp.imp_uid;
msg += '상점 거래ID : ' + rsp.merchant_uid;
msg += '결제 금액 : ' + rsp.paid_amount;
msg += '카드 승인번호 : ' + rsp.apply_num;
result ='0';
} else {
var msg = '결제에 실패하였습니다.';
msg += '에러내용 : ' + rsp.error_msg;
result ='1';
}
if(result=='0') {
location.href= $.getContextPath()+"/Cart/Success";
}
alert(msg);
});
}