자바/스프링
카카오 페이 api 이용하기
초보개발자뀨
2021. 7. 1. 10:54
학원에서 파이널 프로젝트를 진행하면서
구매하기를 구현하면서 카카오 페이 api를 적용시켰습니다.
프로젝트기에 실연동은 어렵구 아임포트를 이용해서 테스트 버전을 이용했습니다.
우선 아임포트에 가입하구 로그인을 해줍니다.
그 후
시스템 설정에 들어가셔서 [간편결제] 카카오페이를 선택해주시고
일반 결제용 사이트 코드를 밑에 가맹점 코드에 입력해줍니다.
이제 셋팅을 끝났구 프로젝트에 js 코드를 입력해 주면 됩니다
코드에 대한 설명은
iamport/iamport-manual
아임포트(iamport) 결제연동을 위한 매뉴얼입니다. Contribute to iamport/iamport-manual development by creating an account on GitHub.
github.com
위 깃허브로 들어가시면 아임포트에서 제공하는 샘플 코드가 있습니다.
IMP.request_pay({
pg : 'kakaopay',
pay_method : 'card',
merchant_uid : 'merchant_' + new Date().getTime(),
name : '주문명:결제테스트',
amount : 14000,
buyer_email : 'iamport@siot.do',
buyer_name : '구매자이름',
buyer_tel : '010-1234-5678',
buyer_addr : '서울특별시 강남구 삼성동',
buyer_postcode : '123-456'
}, function(rsp) {
if ( rsp.success ) {
//[1] 서버단에서 결제정보 조회를 위해 jQuery ajax로 imp_uid 전달하기
jQuery.ajax({
url: "/payments/complete", //cross-domain error가 발생하지 않도록 주의해주세요
type: 'POST',
dataType: 'json',
data: {
imp_uid : rsp.imp_uid
//기타 필요한 데이터가 있으면 추가 전달
}
}).done(function(data) {
//[2] 서버에서 REST API로 결제정보확인 및 서비스루틴이 정상적인 경우
if ( everythings_fine ) {
var msg = '결제가 완료되었습니다.';
msg += '\n고유ID : ' + rsp.imp_uid;
msg += '\n상점 거래ID : ' + rsp.merchant_uid;
msg += '\결제 금액 : ' + rsp.paid_amount;
msg += '카드 승인번호 : ' + rsp.apply_num;
alert(msg);
} else {
//[3] 아직 제대로 결제가 되지 않았습니다.
//[4] 결제된 금액이 요청한 금액과 달라 결제를 자동취소처리하였습니다.
}
});
} else {
var msg = '결제에 실패하였습니다.';
msg += '에러내용 : ' + rsp.error_msg;
alert(msg);
}
});
저는 여기에 맞게 고쳐주고 카카오페이를 선택했을 때 이 함수가 동작하도록 코드를 짜줍니다
밑 로직은 결제버튼을 눌렀을 때 결제 수단이 '카카오페이'이면 카카오페이 api가 동작하도록 하였습니다.
function kakaoPay() {
IMP.init('imp74058866'); // 'iamport' 대신 부여받은 "가맹점 식별코드"를 사용
IMP.request_pay({
pg : 'kakaopay',
pay_method : 'card',
merchant_uid : 'merchant_' + new Date().getTime(),
name : '세모마켓 -'+$('#goods').val(),
amount : $('#total_price').val(),
buyer_email : 'sangmi517@naver.com',
buyer_name : $('#user_name').val(),
buyer_tel : '010-7736-8592',
buyer_addr : '구매자 배송지',
buyer_postcode : '112-343',
}, function(rsp) {
if ( rsp.success ) {
var msg = '결제가 완료되었습니다. 결제정보는 카카오톡으로 전송됩니다.';
alert(msg);
$('#buy_form').submit();
document.getElementById("payment_submit").click();
//document.$('#payment_submit').click();
//document.$('#payment_form').submit();
} else {
msg = '결제에 실패하였습니다.';
msg += '에러내용 : ' + rsp.error_msg;
alert(msg);
}
});
}
function pay() {
var pay_method = $("input[name='pay_mtd']:checked").val();
console.log(pay_method);
if(pay_method =="카카오 페이") {
kakaoPay();
}
else {
$('#buy_form').submit();
}
}
이렇게 설정 해주고 프로젝트에서 실행시켜보면
다음과 같이 QR 코드 및 카톡 메세지로 구매를 하실 수 있습니다!
결제 Api를 처음 이용하는거라 아임포트에 API 사용설명이 자세히 되어있어서 쉽게 구현할 수 있었습니다.