JavaScript/Next.js
Next.js 결제모듈 연동 - 포트원(구 아임포트) (2)
크런키스틱
2023. 6. 19. 13:26
728x90
이전 포스트에서는 결제모듈을 사용하기 위한 사전준비 작업을 마쳤다.
이어서, Next.js 코드에 적용하는 방법을 정리한다.
1. 아임포트 라이브러리 추가
<Script
type="text/javascript"
src="https://code.jquery.com/jquery-1.12.4.min.js"
></Script>
<Script
type="text/javascript"
src="https://cdn.iamport.kr/js/iamport.payment-1.1.8.js"
></Script>
2. 객체 초기화
const IMP = window.IMP;
IMP.init("가맹점 식별코드")
해당 초기화 코드를 Next.js에서 사용하기 위해서는 결제 버튼 클릭 이벤트 안에서 실행하는게 좋다.
3. 결제창 호출
const onPaymentHandler = () => {
const IMP = window.IMP;
IMP.init("가맹점 식별코드");
const payData: RequestPayParams = {
pg: "html5_inicis", // PG사
pay_method: "card", // 결제수단
merchant_uid: `mid_${dayjs().unix()}`, // 주문번호
name: "아이템명", // 주문명
amount: 10,000 // 결제금액
buyer_name: "홍길동", // 구매자 이름
buyer_email: "hong@gmail.com",
buyer_tel: "010-1234-5678", // 구매자 전화번호
custom_data: {} // 넘겨야될 데이터가 있을 경우 사용,
m_redirect_url: `https://ex.~~.com`, // 리디렉션 url(모바일에서 필요)
};
const callback = async (rsp: RequestPayResponse) => {
if (rsp.success) {
// 결제 성공 시 로직
} else{
// 결제 실패 시 로직
}
};
IMP.request_pay(payData, callback);
}
백엔드 처리는 공식문서를 따라서 본인이 필요한 로직들을 생성하면 된다.
백엔드에서 처리한 코드들은 추후 NestJS 카테고리에서 정리한다.
4. 결제창 확인
해당 코드를 짠 버튼을 클릭하여 실행해보면 아래와 같은 결제창을 확인할 수 있다.
728x90