UNPKG

iamport-react-native

Version:

리액트 네이티브용 아임포트 결제/본인인증 연동 라이브러리

108 lines (107 loc) 3.59 kB
"use strict"; import { Validation } from "./Validation.js"; import { IMPConst } from "../constants/index.js"; class ValidationForPayment extends Validation { constructor(userCode, loading, callback, data) { super(userCode, loading, callback, data); } validateData() { const { pg, pay_method, merchant_uid, amount, buyer_tel, app_scheme, language, digital, biz_num, customer_uid, naverPopupMode, popup } = this.data; if (this.data === undefined) { this.isValid = false; this.message = '결제 파라미터(data)는 필수입력입니다.'; return; } if (merchant_uid === undefined) { this.isValid = false; this.message = '주문번호(merchant_uid)는 필수입력입니다.'; return; } if (amount === undefined) { this.isValid = false; this.message = '결제금액(amount)은 필수입력입니다.'; return; } if (buyer_tel === undefined) { this.isValid = false; this.message = '구매자 번호(buyer_tel)는 필수입력입니다.'; return; } if (app_scheme === undefined) { this.isValid = false; this.message = 'app_scheme은 필수입력입니다.'; return; } if (pg) { const [pgProvider] = pg.split('.'); if (IMPConst.PG.indexOf(pgProvider) === -1) { this.isValid = false; this.message = 'PG사가 올바르지 않습니다.'; } } if (language && pg !== 'paypal') { if (IMPConst.EN_AVAILABLE_PG.indexOf(pg) !== -1) { if (pg === 'eximbay') { if (!['ko', 'en', 'zh', 'jp'].includes(language)) { this.isValid = false; this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko, en, zh jp 옵션을 지원합니다.'; return; } } else if (IMPConst.LANGUAGE.indexOf(language) === -1) { this.isValid = false; this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko 또는 en 옵션을 지원합니다.'; return; } } else if (language !== 'ko') { this.isValid = false; this.message = '올바르지 않은 언어 설정입니다.\n 선택하신 PG사는 ko 옵션만 지원합니다.'; return; } } if (pay_method === 'phone' && digital === undefined) { this.isValid = false; this.message = '휴대폰 소액결제시 digital은 필수입력입니다.'; return; } if (pg === 'syrup') { this.isValid = false; this.message = '해당 모듈은 현재 시럽페이를 지원하지 않습니다.'; return; } if (popup) { this.isValid = false; this.message = '해당 모듈은 팝업을 지원하지 않습니다.'; return; } if (pg === 'naverpay' && naverPopupMode) { this.isValid = false; this.message = '해당 모듈에서 popup은\n네이버 페이 결제시 지원하지 않습니다.'; return; } if (pg === 'danal_tpay' && pay_method === 'vbank' && biz_num === undefined) { this.isValid = false; this.message = '다날-가상계좌시 biz_num은 필수입력입니다.'; return; } if ((pg === 'kcp_billing' || pg === 'syrup') && customer_uid === undefined) { this.isValid = false; this.message = '정기결제시 customer_uid는 필수입력입니다.'; return; } } } export default ValidationForPayment; //# sourceMappingURL=ValidationForPayment.js.map