클로스트 이야기

아임포트 결제모듈 사용시 주의사항 본문

개발이야기/알면좋은것들

아임포트 결제모듈 사용시 주의사항

클로스트 2018. 9. 6. 21:20

안녕하세요. 클로스트입니다. ^-^

오늘은 아임포트 결제모듈에 관한 이야기를 해볼까합니다.

아임포트 홈페이지에 들어가시면 아주 친절하게 개발자 가이드를 적어놨습니다.

그래서 자바스크립트 소스 붙이는건 그리 어렵지 않을텐데요.

 

우선 아임포트 결제창을 호출하려면

아래와 같은 소스를 호출해야하는데

================================================

IMP.request_pay({
    pg : 'inicis', // version 1.1.0부터 지원.
    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',
    m_redirect_url : 'https://www.yourdomain.com/payments/complete'
}, function(rsp) {
    if ( rsp.success ) {
        var msg = '결제가 완료되었습니다.';
        msg += '고유ID : ' + rsp.imp_uid;
        msg += '상점 거래ID : ' + rsp.merchant_uid;
        msg += '결제 금액 : ' + rsp.paid_amount;
        msg += '카드 승인번호 : ' + rsp.apply_num;
    } else {
        var msg = '결제에 실패하였습니다.';
        msg += '에러내용 : ' + rsp.error_msg;
    }
    alert(msg);
});

================================================ 

(출처 : https://www.iamport.kr/getstarted )

 

호출 파라미터중에 m_redirect_url 이라는 항목이 보이실겁니다.

이게 결제모듈 호출할때 아주 중요한 역할을 하게 되는데요.

 

모바일에서 사용시 결제창을 띄우면 새로운 주소(결제페이지)로 리다이렉트 하게 됩니다.

그럼 제어권을 아임포트측에 넘겨 준게 되버려서 우리는 정보를 핸들링 못하게 되는데 사용자가 결제창을 닫거나

정상적으로 결제가 완료 됐을 경우 아임포트측에서 결제에 관한 정보를 m_redirect_url 주소로

get 방식으로 긁어갈수 있는 정보를 줍니다. ( 결제성공과 실패여부 에러메시지 등)

그러면 우리 홈페이지측에서 그정보를 토대로 성공인지 실패인지 판단하게 되는데요.

그래서 m_redirect_url 파라미터가 중요한 역할을 하게됩니다.

 

그리고 기본 웹에서 결제모듈을 호출할 시 파라미터는 10개가 되는데

모바일에서 결제모듈을 호출할 시 파라미터는 11개 입니다. (m_redirect_url추가)

그래서 웹에서 m_redirect_url 파람을 추가 하더라도 결제모듈은 뜨지 않습니다.

 

그런데...

 

제가 이번에 하면서 문제가 생긴곳은

태블릿일 경우 입니다.

태블릿일 경우 홈페이지를 웹용으로 띄우더라도

파라미터 10개로 호출이 가능(?)하게 됩니다.

그러면 당연히 예상하지 못한 경우라서 m_redirect_url 도 지정해 주지 않았기 때문에

사용자 결제프로세스가 완료되면 페이지는 오류가 뜨겟죠...(리다이렉트 주소가 없기때문에 다음프로세스 진행불가)

 

그래서 아임포트 결제모듈을 붙이는 작업을 하신다면 꼭!!

태블릿의 경우에 대해서 테스트를 충분히 하시길 권장드립니다.

 

 

 

 

Comments