-Key In 결제 요청 카드번호 4자 제한
- SMS 결제통보 필드 변경 수정
This commit is contained in:
@@ -15,6 +15,7 @@ export enum SmsPaymentSearchCl {
|
||||
export interface SmsPaymentListItem {
|
||||
mid?: string;
|
||||
tid?: string;
|
||||
seq?: number;
|
||||
buyerName?: string;
|
||||
buyerPhoneLast4?: string;
|
||||
sendDate?: string;
|
||||
@@ -28,7 +29,7 @@ export interface SmsPaymentListProps {
|
||||
listItems: Array<ListItemProps>;
|
||||
additionalServiceCategory: AdditionalServiceCategory;
|
||||
mid: string;
|
||||
onResendClick?: (mid: string, tid: string) => void;
|
||||
onResendClick?: (seq: number) => void;
|
||||
}
|
||||
|
||||
export interface SmsPaymentFilterProps extends FilterProps {
|
||||
@@ -71,24 +72,18 @@ export interface ExtensionSmsDetailResponse {
|
||||
sendMessage: string;
|
||||
}
|
||||
|
||||
export interface ExtensionSmsResendParams extends ExtensionRequestParams {
|
||||
tid: string;
|
||||
sendMessage: string;
|
||||
}
|
||||
|
||||
|
||||
export interface SmsPaymentDetailResendProps {
|
||||
bottomSmsPaymentDetailResendOn: boolean;
|
||||
setBottomSmsPaymentDetailResendOn: (bottomSmsPaymentDetailResendOn: boolean) => void;
|
||||
smsDetailData: ExtensionSmsDetailResponse | null;
|
||||
mid: string;
|
||||
tid: string;
|
||||
seq: number;
|
||||
}
|
||||
|
||||
// SMS 결제알림 확장 서비스
|
||||
// ========================================
|
||||
export interface ExtensionSmsResendParams extends ExtensionRequestParams {
|
||||
tid: string;
|
||||
export interface ExtensionSmsResendParams {
|
||||
seq: number;
|
||||
sendMessage: string;
|
||||
}
|
||||
|
||||
export interface ExtensionSmsResendResponse {
|
||||
@@ -139,6 +134,6 @@ export interface ExtensionSmsDownloadExcelResponse {
|
||||
|
||||
}
|
||||
|
||||
export interface ExtensionSmsDetailParams extends ExtensionRequestParams {
|
||||
tid: string;
|
||||
export interface ExtensionSmsDetailParams {
|
||||
seq: number;
|
||||
}
|
||||
@@ -195,7 +195,7 @@ export interface ListItemProps extends
|
||||
additionalServiceCategory?: AdditionalServiceCategory;
|
||||
mid?: string;
|
||||
seq?: number;
|
||||
onResendClick?: (mid: string, tid: string) => void;
|
||||
onResendClick?: (seq: number) => void;
|
||||
setDetailData?: (detailData: DetailData) => void;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ export interface ListDateGroupProps {
|
||||
date?: string;
|
||||
items?: Array<ListItemProps>;
|
||||
mid?: string;
|
||||
onResendClick?: (mid: string, tid: string) => void;
|
||||
onResendClick?: (seq: number) => void;
|
||||
setDetailData?: (detailData: DetailData) => void;
|
||||
}
|
||||
|
||||
|
||||
@@ -608,7 +608,7 @@ export const ListItem = ({
|
||||
<div
|
||||
key="sms-payment-amount"
|
||||
className={`status-label success`}
|
||||
onClick={() => mid && onResendClick(mid, tid || '')}
|
||||
onClick={() => seq && onResendClick(seq)}
|
||||
>{t('additionalService.common.resend')}</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -10,8 +10,7 @@ export const SmsPaymentDetailResend = ({
|
||||
bottomSmsPaymentDetailResendOn,
|
||||
setBottomSmsPaymentDetailResendOn,
|
||||
smsDetailData,
|
||||
mid,
|
||||
tid
|
||||
seq
|
||||
}: SmsPaymentDetailResendProps) => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
@@ -29,18 +28,18 @@ export const SmsPaymentDetailResend = ({
|
||||
}
|
||||
|
||||
resendMessage({
|
||||
mid: mid,
|
||||
tid: tid,
|
||||
seq: seq,
|
||||
sendMessage: smsDetailData.sendMessage
|
||||
}).then((rs) => {
|
||||
if (rs.status) {
|
||||
snackBar(t('additionalService.sms.sendSuccess'))
|
||||
setBottomSmsPaymentDetailResendOn(false)
|
||||
} else {
|
||||
snackBar(t('additionalService.sms.sendFailed', { message: rs.error?.message }))
|
||||
}
|
||||
setBottomSmsPaymentDetailResendOn(false);
|
||||
}).catch((error) => {
|
||||
snackBar(t('additionalService.sms.sendFailed', { message: error?.response?.data?.message || error?.response?.data?.error?.message }) || t('additionalService.sms.sendFailedGeneric'))
|
||||
setBottomSmsPaymentDetailResendOn(false)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -124,8 +124,14 @@ export const KeyInPaymentRequestPage = () => {
|
||||
};
|
||||
|
||||
const isValidCardNumber = () => {
|
||||
return cardNo1.length === 4 && cardNo2.length === 4 &&
|
||||
cardNo3.length === 4 && cardNo4.length === 4;
|
||||
// 실제 숫자만 추출 (포맷팅 문자 제거)
|
||||
const cleanCardNo1 = cardNo1.replace(/\D/g, '');
|
||||
const cleanCardNo2 = cardNo2.replace(/\D/g, '');
|
||||
const cleanCardNo3 = cardNo3.replace(/\D/g, '');
|
||||
const cleanCardNo4 = cardNo4.replace(/\D/g, '');
|
||||
|
||||
return cleanCardNo1.length === 4 && cleanCardNo2.length === 4 &&
|
||||
cleanCardNo3.length === 4 && cleanCardNo4.length === 4;
|
||||
};
|
||||
|
||||
const isFormValid = () => {
|
||||
|
||||
@@ -24,6 +24,7 @@ import { PATHS } from '@/shared/constants/paths';
|
||||
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
||||
import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check';
|
||||
import useIntersectionObserver from '@/widgets/intersection-observer';
|
||||
import { set } from 'lodash-es';
|
||||
|
||||
export const SmsPaymentPage = () => {
|
||||
const { t } = useTranslation();
|
||||
@@ -42,8 +43,7 @@ export const SmsPaymentPage = () => {
|
||||
const [pageParam, setPageParam] = useState<DefaultRequestPagination>(DEFAULT_PAGE_PARAM);
|
||||
const [filterOn, setFilterOn] = useState<boolean>(false);
|
||||
const [mid, setMid] = useState<string>(userMid);
|
||||
const [selectedTid, setSelectedTid] = useState<string>('');
|
||||
const [selectedMid, setSelectedMid] = useState<string>('');
|
||||
const [seq, setSeq] = useState<number>(0);
|
||||
const [searchCl, setSearchCl] = useState<SmsPaymentSearchCl>(SmsPaymentSearchCl.BUYER_NAME)
|
||||
const [searchValue, setSearchValue] = useState<string>('')
|
||||
const [fromDate, setFromDate] = useState(moment().format('YYYYMMDD'));
|
||||
@@ -51,9 +51,6 @@ export const SmsPaymentPage = () => {
|
||||
const [smsCl, setSmsCl] = useState<SmsCl>(SmsCl.ALL);
|
||||
const [smsDetailData, setSmsDetailData] = useState<ExtensionSmsDetailResponse | null>(null);
|
||||
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
|
||||
const [detailOn, setDetailOn] = useState<boolean>(false);
|
||||
const [detailTid, setDetailTid] = useState<string>('');
|
||||
const [detailServiceCode, setDetailServiceCode] = useState<string>('');
|
||||
|
||||
const { mutateAsync: smsPaymentList } = useExtensionSmsListMutation();
|
||||
const { mutateAsync: downloadExcel } = useExtensionSmsDownloadExcelMutation();
|
||||
@@ -129,11 +126,9 @@ export const SmsPaymentPage = () => {
|
||||
});
|
||||
}
|
||||
|
||||
const callDetail = (selectedMid: string, selectedTid: string) => {
|
||||
console.log('Selected Mid: ', selectedMid, 'Selected Tid: ', selectedTid);
|
||||
const callDetail = (selectedSeq:number) => {
|
||||
detail({
|
||||
mid: selectedMid,
|
||||
tid: selectedTid
|
||||
seq: selectedSeq
|
||||
}).then((rs) => {
|
||||
setSmsDetailData(rs);
|
||||
})
|
||||
@@ -165,10 +160,9 @@ export const SmsPaymentPage = () => {
|
||||
};
|
||||
|
||||
|
||||
const onClickToShowDetail = (itemMid: string, itemTid: string) => {
|
||||
setSelectedMid(itemMid);
|
||||
setSelectedTid(itemTid);
|
||||
callDetail(itemMid, itemTid);
|
||||
const onClickToShowDetail = (selectedSeq: number) => {
|
||||
setSeq(selectedSeq);
|
||||
callDetail(selectedSeq);
|
||||
setBottomSmsPaymentDetailResendOn(true);
|
||||
};
|
||||
|
||||
@@ -239,8 +233,7 @@ export const SmsPaymentPage = () => {
|
||||
bottomSmsPaymentDetailResendOn={bottomSmsPaymentDetailResendOn}
|
||||
setBottomSmsPaymentDetailResendOn={setBottomSmsPaymentDetailResendOn}
|
||||
smsDetailData={smsDetailData}
|
||||
mid={selectedMid}
|
||||
tid={selectedTid}
|
||||
seq={seq}
|
||||
></SmsPaymentDetailResend>
|
||||
|
||||
<SmsPaymentFilter
|
||||
|
||||
Reference in New Issue
Block a user