결제 데이터 통보

This commit is contained in:
focp212@naver.com
2025-09-17 09:55:35 +09:00
parent d1556fd77d
commit feab946333
3 changed files with 45 additions and 30 deletions

View File

@@ -9,6 +9,13 @@ export enum PaymentInfoItemType {
export interface PaymentTabProps { export interface PaymentTabProps {
activeTab: PaymentTabKeys; activeTab: PaymentTabKeys;
}; };
export enum DataNotificationNotifyContentKey {
CreditCard = 'CreditCard',
AccountTransfer = 'AccountTransfer',
VirtualAccount = 'VirtualAccount',
MobilePayment = 'MobilePayment',
EscrowPayment = 'EscrowPayment',
};
export interface InfoItemProps { export interface InfoItemProps {
type?: PaymentInfoItemType; type?: PaymentInfoItemType;
payName?: string; payName?: string;

View File

@@ -2,9 +2,11 @@ import moment from 'moment';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { SlideDown } from 'react-slidedown'; import { SlideDown } from 'react-slidedown';
import 'react-slidedown/lib/slidedown.css'; import 'react-slidedown/lib/slidedown.css';
import { DataNotificationNotifyContentKey } from '../model/types';
export interface DataNotificationNotifyContentProps { export interface DataNotificationNotifyContentProps {
paymentMethodName: string; paymentMethodName: string;
type: DataNotificationNotifyContentKey;
startDate?: string; startDate?: string;
adminEmail?: string; adminEmail?: string;
urlIp?: string; urlIp?: string;
@@ -12,11 +14,12 @@ export interface DataNotificationNotifyContentProps {
retransmissionCount?: string; retransmissionCount?: string;
okCheck?: string; okCheck?: string;
encryptionStatus?: string; encryptionStatus?: string;
isChildOpen: boolean; openChild: DataNotificationNotifyContentKey | null;
setIsChildOpen: (isChildOpen: boolean) => void; setOpenChild: (openChild: DataNotificationNotifyContentKey | null) => void;
}; };
export const DataNotificationNotifyContent = ({ export const DataNotificationNotifyContent = ({
paymentMethodName, paymentMethodName,
type,
startDate, startDate,
adminEmail, adminEmail,
urlIp, urlIp,
@@ -24,23 +27,28 @@ export const DataNotificationNotifyContent = ({
retransmissionCount, retransmissionCount,
okCheck, okCheck,
encryptionStatus, encryptionStatus,
isChildOpen, openChild,
setIsChildOpen setOpenChild
}: DataNotificationNotifyContentProps) => { }: DataNotificationNotifyContentProps) => {
const [isOpen, setIsOpen] = useState<boolean>(false); const [isOpen, setIsOpen] = useState<boolean>(false);
const openNotifyContent = () => { const openNotifyContent = () => {
setIsOpen(!isOpen); const staus = !isOpen;
setIsChildOpen(!isOpen); setIsOpen(staus);
if(!!staus){
setOpenChild(type);
}
else {
setOpenChild(null)
}
}; };
useEffect(() => { useEffect(() => {
console.log('useEffect ', isChildOpen) if(!!openChild && openChild !== type){
if(!!isChildOpen){ setIsOpen(false);
//setIsOpen(false); }
} }, [openChild])
}, [isChildOpen])
return ( return (
<> <>

View File

@@ -8,18 +8,13 @@ import {
VirtualAccount, VirtualAccount,
MobilePayment, MobilePayment,
EscrowPayment, EscrowPayment,
DataNotificationNotifyContentKey,
PaymentNotificationDataResponse PaymentNotificationDataResponse
} from '../model/types'; } from '../model/types';
export interface DataNotificationWrapProps { export interface DataNotificationWrapProps {
paymentNotificationData?: PaymentNotificationDataResponse; paymentNotificationData?: PaymentNotificationDataResponse;
}; };
export enum DataNotificationNotifyContentKey {
CreditCard = 'CreditCard',
AccountTransfer = 'AccountTransfer',
VirtualAccount = 'VirtualAccount',
MobilePayment = 'MobilePayment',
EscrowPayment = 'EscrowPayment',
};
export const DataNotificationWrap = ({ export const DataNotificationWrap = ({
paymentNotificationData paymentNotificationData
}: DataNotificationWrapProps) => { }: DataNotificationWrapProps) => {
@@ -30,7 +25,7 @@ export const DataNotificationWrap = ({
const [mobilePayment, setMobilePayment] = useState<Record<string, any>>(); const [mobilePayment, setMobilePayment] = useState<Record<string, any>>();
const [escrowPayment, setEscrowPayment] = useState<Record<string, any>>(); const [escrowPayment, setEscrowPayment] = useState<Record<string, any>>();
const [isChildOpen, setIsChildOpen] = useState<boolean>(false); const [openChild, setOpenChild] = useState<DataNotificationNotifyContentKey | null>(null);
useEffect(() => { useEffect(() => {
setMerchantInfo(paymentNotificationData?.merchantInfo); setMerchantInfo(paymentNotificationData?.merchantInfo);
@@ -59,6 +54,7 @@ export const DataNotificationWrap = ({
<li> <li>
<DataNotificationNotifyContent <DataNotificationNotifyContent
paymentMethodName={ '신용카드' } paymentMethodName={ '신용카드' }
type={ DataNotificationNotifyContentKey.CreditCard }
startDate={ creditCard?.startDate } startDate={ creditCard?.startDate }
adminEmail={ creditCard?.adminEmail } adminEmail={ creditCard?.adminEmail }
urlIp={ creditCard?.urlIp } urlIp={ creditCard?.urlIp }
@@ -66,14 +62,15 @@ export const DataNotificationWrap = ({
retransmissionCount={ creditCard?.retransmissionCount } retransmissionCount={ creditCard?.retransmissionCount }
okCheck={ creditCard?.okCheck} okCheck={ creditCard?.okCheck}
encryptionStatus={ creditCard?.encryptionStatus } encryptionStatus={ creditCard?.encryptionStatus }
isChildOpen={ isChildOpen } openChild={ openChild }
setIsChildOpen={ setIsChildOpen } setOpenChild={ setOpenChild }
></DataNotificationNotifyContent> ></DataNotificationNotifyContent>
</li> </li>
<li className="notify-divider"></li> <li className="notify-divider"></li>
<li> <li>
<DataNotificationNotifyContent <DataNotificationNotifyContent
paymentMethodName={ '계좌이체' } paymentMethodName={ '계좌이체' }
type={ DataNotificationNotifyContentKey.AccountTransfer }
startDate={ accountTransfer?.startDate } startDate={ accountTransfer?.startDate }
adminEmail={ accountTransfer?.adminEmail } adminEmail={ accountTransfer?.adminEmail }
urlIp={ accountTransfer?.urlIp } urlIp={ accountTransfer?.urlIp }
@@ -81,14 +78,15 @@ export const DataNotificationWrap = ({
retransmissionCount={ accountTransfer?.retransmissionCount } retransmissionCount={ accountTransfer?.retransmissionCount }
okCheck={ accountTransfer?.okCheck} okCheck={ accountTransfer?.okCheck}
encryptionStatus={ accountTransfer?.encryptionStatus } encryptionStatus={ accountTransfer?.encryptionStatus }
isChildOpen={ isChildOpen } openChild={ openChild }
setIsChildOpen={ setIsChildOpen } setOpenChild={ setOpenChild }
></DataNotificationNotifyContent> ></DataNotificationNotifyContent>
</li> </li>
<li className="notify-divider"></li> <li className="notify-divider"></li>
<li> <li>
<DataNotificationNotifyContent <DataNotificationNotifyContent
paymentMethodName={ '가상계좌' } paymentMethodName={ '가상계좌' }
type={ DataNotificationNotifyContentKey.VirtualAccount }
startDate={ virtualAccount?.startDate } startDate={ virtualAccount?.startDate }
adminEmail={ virtualAccount?.adminEmail } adminEmail={ virtualAccount?.adminEmail }
urlIp={ virtualAccount?.urlIp } urlIp={ virtualAccount?.urlIp }
@@ -96,14 +94,15 @@ export const DataNotificationWrap = ({
retransmissionCount={ virtualAccount?.retransmissionCount } retransmissionCount={ virtualAccount?.retransmissionCount }
okCheck={ virtualAccount?.okCheck} okCheck={ virtualAccount?.okCheck}
encryptionStatus={ virtualAccount?.encryptionStatus } encryptionStatus={ virtualAccount?.encryptionStatus }
isChildOpen={ isChildOpen } openChild={ openChild }
setIsChildOpen={ setIsChildOpen } setOpenChild={ setOpenChild }
></DataNotificationNotifyContent> ></DataNotificationNotifyContent>
</li> </li>
<li className="notify-divider"></li> <li className="notify-divider"></li>
<li> <li>
<DataNotificationNotifyContent <DataNotificationNotifyContent
paymentMethodName={ '휴대폰' } paymentMethodName={ '휴대폰' }
type={ DataNotificationNotifyContentKey.MobilePayment }
startDate={ mobilePayment?.startDate } startDate={ mobilePayment?.startDate }
adminEmail={ mobilePayment?.adminEmail } adminEmail={ mobilePayment?.adminEmail }
urlIp={ mobilePayment?.urlIp } urlIp={ mobilePayment?.urlIp }
@@ -111,14 +110,15 @@ export const DataNotificationWrap = ({
retransmissionCount={ mobilePayment?.retransmissionCount } retransmissionCount={ mobilePayment?.retransmissionCount }
okCheck={ mobilePayment?.okCheck} okCheck={ mobilePayment?.okCheck}
encryptionStatus={ mobilePayment?.encryptionStatus } encryptionStatus={ mobilePayment?.encryptionStatus }
isChildOpen={ isChildOpen } openChild={ openChild }
setIsChildOpen={ setIsChildOpen } setOpenChild={ setOpenChild }
></DataNotificationNotifyContent> ></DataNotificationNotifyContent>
</li> </li>
<li className="notify-divider"></li> <li className="notify-divider"></li>
<li> <li>
<DataNotificationNotifyContent <DataNotificationNotifyContent
paymentMethodName={ '에스크로 결제' } paymentMethodName={ '에스크로 결제' }
type={ DataNotificationNotifyContentKey.EscrowPayment }
startDate={ escrowPayment?.startDate } startDate={ escrowPayment?.startDate }
adminEmail={ escrowPayment?.adminEmail } adminEmail={ escrowPayment?.adminEmail }
urlIp={ escrowPayment?.urlIp } urlIp={ escrowPayment?.urlIp }
@@ -126,8 +126,8 @@ export const DataNotificationWrap = ({
retransmissionCount={ escrowPayment?.retransmissionCount } retransmissionCount={ escrowPayment?.retransmissionCount }
okCheck={ escrowPayment?.okCheck} okCheck={ escrowPayment?.okCheck}
encryptionStatus={ escrowPayment?.encryptionStatus } encryptionStatus={ escrowPayment?.encryptionStatus }
isChildOpen={ isChildOpen } openChild={ openChild }
setIsChildOpen={ setIsChildOpen } setOpenChild={ setOpenChild }
></DataNotificationNotifyContent> ></DataNotificationNotifyContent>
</li> </li>
</ul> </ul>