1. 포트원 (구 아임포트) 회원가입
2. index.html 에 다음과 같이 추가
<script src="https://cdn.iamport.kr/v1/iamport.js"></script>
3. 원하는 pg 등록하기
결제 연동 > 결제대행사 설정 및 추가
4. 컴포넌트에 다음 로직 추가하기
리액트 아임포트 공식문서 참조
https://github.com/iamport/iamport-react-example/blob/master/manuals/PAYMENT.md
const onClickPayment = () => {
if (!window.IMP) return;
/* 1. 가맹점 식별하기 */
const { IMP } = window;
IMP.init('가맹점 식별코드'); // 가맹점 식별코드
/* 2. 결제 데이터 정의하기 */
const data: RequestPayParams = {
// kcp, kakaopay 등록해놨음
pg: 'kakaopay', // PG사 : https://portone.gitbook.io/docs/sdk/javascript-sdk/payrq#undefined-1 참고
pay_method: 'card', // 결제수단
merchant_uid: `mid_${new Date().getTime()}`, // 주문번호
amount: 10000, // 결제금액
name: '샌드위치', // 주문명
buyer_name: '홍길동', // 구매자 이름
buyer_tel: '01012341234', // 구매자 전화번호
buyer_email: 'example@example', // 구매자 이메일
buyer_addr: '신사동 661-16', // 구매자 주소
buyer_postcode: '06018' // 구매자 우편번호
};
/* 4. 결제 창 호출하기 */
IMP.request_pay(data, callback);
};
/* 3. 콜백 함수 정의하기 */
function callback(response: RequestPayResponse) {
const { success, error_msg } = response;
if (success) {
alert('결제에 성공하였습니다.');
submitPay();
} else {
alert(`결제 실패: ${error_msg}`);
}
}
결과
'TIL' 카테고리의 다른 글
TIL 23.08.14 [벼락샌드] 팀프로젝트 회고 (0) | 2023.08.15 |
---|---|
TIL 23.08.11 React 스와이퍼 구현 (0) | 2023.08.11 |
TIL 23.08.08 supabase 데이터 불러오기 (0) | 2023.08.08 |
TIL 23.08.07 Supabase 설정 (0) | 2023.08.07 |
TIL 23.08.04 Mockterview (11)~(13) (0) | 2023.08.04 |