From bf26e9ff05fa362ed139ede191450006a5afc4b4 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Tue, 16 Sep 2025 17:40:27 +0900 Subject: [PATCH] test --- .env.production | 6 +- server.js | 17 ++++- ...utaion.ts => use-payment-card-mutation.ts} | 0 ...se-payment-installment-detail-mutation.ts} | 0 ...ts => use-payment-installment-mutation.ts} | 0 ...use-payment-notification-data-mutation.ts} | 4 +- src/entities/payment/model/types.ts | 5 ++ .../payment/ui/data-notification-wrap.tsx | 9 ++- src/entities/payment/ui/info-wrap.tsx | 57 +++++++++----- ...taion.ts => use-notice-detail-mutation.ts} | 0 ...use-cash-receipt-manual-issue-mutation.ts} | 0 ...e-cash-receipt-purpose-update-mutation.ts} | 0 .../data-notification-page.tsx | 30 +++++++- src/pages/payment/info/info-page.tsx | 48 +++++++++++- src/pages/support/notice/detail-page.tsx | 2 +- .../transaction/cash-receipt/detail-page.tsx | 2 +- .../hand-written-issuance-page.tsx | 2 +- src/shared/api/api-url-home.ts | 2 +- src/shared/api/api-url-payment.ts | 2 +- src/shared/api/urls.ts | 74 ------------------- src/shared/constants/url.ts | 7 +- 21 files changed, 154 insertions(+), 113 deletions(-) rename src/entities/payment/api/{use-payment-card-mutaion.ts => use-payment-card-mutation.ts} (100%) rename src/entities/payment/api/{use-payment-installment-detail-mutaion.ts => use-payment-installment-detail-mutation.ts} (100%) rename src/entities/payment/api/{use-payment-installment-mutaion.ts => use-payment-installment-mutation.ts} (100%) rename src/entities/payment/api/{use-payment-notification-data-mutaion.ts => use-payment-notification-data-mutation.ts} (96%) rename src/entities/support/api/{use-notice-detail-mutaion.ts => use-notice-detail-mutation.ts} (100%) rename src/entities/transaction/api/{use-cash-receipt-manual-issue.ts => use-cash-receipt-manual-issue-mutation.ts} (100%) rename src/entities/transaction/api/{use-cash-receipt-purpose-update.ts => use-cash-receipt-purpose-update-mutation.ts} (100%) diff --git a/.env.production b/.env.production index 240a434..ed6b3bc 100644 --- a/.env.production +++ b/.env.production @@ -1,5 +1,5 @@ -VITE_APP_ENV=development -VITE_APP_AUTH_PROXY_HOST='http://3.35.79.250:8090' -VITE_APP_API_PROXY_HOST='http://3.35.79.250:8080' +VITE_APP_ENV=production +VITE_APP_AUTH_PROXY_HOST='http://auth.nicepay.co.kr' +VITE_APP_API_PROXY_HOST='http://partner.nicepay.co.kr' GENERATE_SOURCEMAP=false SENTRY_AUTH_TOKEN=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 \ No newline at end of file diff --git a/server.js b/server.js index 9ac1031..ef631ee 100644 --- a/server.js +++ b/server.js @@ -1,9 +1,24 @@ -require('dotenv').config({ path: '.env.local.server' }); +require('dotenv').config({ path: '.env.production' }); const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const path = require('path'); const app = express(); +console.log('start server') +app.use( + '/auth', + createProxyMiddleware({ + target: process.env.VITE_APP_AUTH_PROXY_HOST, + changeOrigin: true, + }), +); +app.use( + '/api', + createProxyMiddleware({ + target: process.env.VITE_APP_API_PROXY_HOST, + changeOrigin: true, + }), +); app.use(express.static(path.join(__dirname, 'dist'))); diff --git a/src/entities/payment/api/use-payment-card-mutaion.ts b/src/entities/payment/api/use-payment-card-mutation.ts similarity index 100% rename from src/entities/payment/api/use-payment-card-mutaion.ts rename to src/entities/payment/api/use-payment-card-mutation.ts diff --git a/src/entities/payment/api/use-payment-installment-detail-mutaion.ts b/src/entities/payment/api/use-payment-installment-detail-mutation.ts similarity index 100% rename from src/entities/payment/api/use-payment-installment-detail-mutaion.ts rename to src/entities/payment/api/use-payment-installment-detail-mutation.ts diff --git a/src/entities/payment/api/use-payment-installment-mutaion.ts b/src/entities/payment/api/use-payment-installment-mutation.ts similarity index 100% rename from src/entities/payment/api/use-payment-installment-mutaion.ts rename to src/entities/payment/api/use-payment-installment-mutation.ts diff --git a/src/entities/payment/api/use-payment-notification-data-mutaion.ts b/src/entities/payment/api/use-payment-notification-data-mutation.ts similarity index 96% rename from src/entities/payment/api/use-payment-notification-data-mutaion.ts rename to src/entities/payment/api/use-payment-notification-data-mutation.ts index 3bdac57..b0afbf6 100644 --- a/src/entities/payment/api/use-payment-notification-data-mutaion.ts +++ b/src/entities/payment/api/use-payment-notification-data-mutation.ts @@ -13,7 +13,7 @@ import { export const paymentNotificationData = (params: PaymentNotificationDataParams) => { return resultify( - axios.post(API_URL_PAYMENT.paymentnotificationData(), params), + axios.post(API_URL_PAYMENT.paymentNotificationData(), params), ); }; @@ -26,4 +26,4 @@ export const usePaymentNotificationDataMutation = (options?: UseMutationOptions< return { ...mutation, }; -}; +}; \ No newline at end of file diff --git a/src/entities/payment/model/types.ts b/src/entities/payment/model/types.ts index c547a9b..25d5e9a 100644 --- a/src/entities/payment/model/types.ts +++ b/src/entities/payment/model/types.ts @@ -2,10 +2,15 @@ export enum PaymentTabKeys { Info = 'Info', DataNotification = 'DataNotification', }; +export enum PaymentInfoItemType { + Comission = 'Comission', + NoInterest = 'NoInterest' +}; export interface PaymentTabProps { activeTab: PaymentTabKeys; }; export interface InfoItemProps { + type?: PaymentInfoItemType; payName?: string; payImage?: string; infoLink?: string; diff --git a/src/entities/payment/ui/data-notification-wrap.tsx b/src/entities/payment/ui/data-notification-wrap.tsx index 8e47697..0bcc2b8 100644 --- a/src/entities/payment/ui/data-notification-wrap.tsx +++ b/src/entities/payment/ui/data-notification-wrap.tsx @@ -1,4 +1,11 @@ -export const DataNotificationWrap = () => { +import { PaymentNotificationDataResponse } from '../model/types'; + +export interface DataNotificationWrapProps { + paymentNotificationData?: PaymentNotificationDataResponse; +}; +export const DataNotificationWrap = ({ + paymentNotificationData +}: DataNotificationWrapProps) => { return ( <> diff --git a/src/entities/payment/ui/info-wrap.tsx b/src/entities/payment/ui/info-wrap.tsx index 388fb31..2f6a66b 100644 --- a/src/entities/payment/ui/info-wrap.tsx +++ b/src/entities/payment/ui/info-wrap.tsx @@ -1,9 +1,19 @@ import { IMAGE_ROOT } from "@/shared/constants/common"; import { InfoItem } from "./info-item"; -import { InfoItemProps } from "../model/types"; +import { InfoItemProps, PaymentCardResponse, PaymentInfoItemType, PaymentInstallmentResponse, PaymentNonCardResponse } from "../model/types"; -export const InfoWrap = () => { +export interface InfoWrapProp { + paymentCard?: PaymentCardResponse, + paymentNonCard?: PaymentNonCardResponse, + paymentInstallment?: PaymentInstallmentResponse +}; +export const InfoWrap = ({ + paymentCard, + paymentNonCard, + paymentInstallment +}: InfoWrapProp) => { + const list1 = [ {payName: '신용카드', payImage: 'pay_01.svg', infoLink: ''}, {payName: '카카오페이', payImage: 'pay_02.svg', infoLink: ''}, @@ -38,24 +48,33 @@ export const InfoWrap = () => { {payName: '삼성페이(카드)', payImage: 'pay_04.svg', infoLink: ''}, ]; - const getList = (type: 'comission' | 'NoInterest') => { + const getList = (type: PaymentInfoItemType) => { let rs = []; - let arr: Array = []; - if(type === 'comission'){ - arr = list1; + if(type === PaymentInfoItemType.Comission){ + for(let i=0;i + ); + } } - else if(type === 'NoInterest'){ - arr = list2; - } - for(let i=0;i - ); + else if(type === PaymentInfoItemType.NoInterest){ + for(let i=0;i + ); + } } + return rs; } @@ -65,12 +84,12 @@ export const InfoWrap = () => {
서비스 이용, 수수료 및 정산주기
    - { getList('comission') } + { getList(PaymentInfoItemType.Comission) }
가맹점 분담 무이자 정보
    - { getList('NoInterest') } + { getList(PaymentInfoItemType.NoInterest) }
diff --git a/src/entities/support/api/use-notice-detail-mutaion.ts b/src/entities/support/api/use-notice-detail-mutation.ts similarity index 100% rename from src/entities/support/api/use-notice-detail-mutaion.ts rename to src/entities/support/api/use-notice-detail-mutation.ts diff --git a/src/entities/transaction/api/use-cash-receipt-manual-issue.ts b/src/entities/transaction/api/use-cash-receipt-manual-issue-mutation.ts similarity index 100% rename from src/entities/transaction/api/use-cash-receipt-manual-issue.ts rename to src/entities/transaction/api/use-cash-receipt-manual-issue-mutation.ts diff --git a/src/entities/transaction/api/use-cash-receipt-purpose-update.ts b/src/entities/transaction/api/use-cash-receipt-purpose-update-mutation.ts similarity index 100% rename from src/entities/transaction/api/use-cash-receipt-purpose-update.ts rename to src/entities/transaction/api/use-cash-receipt-purpose-update-mutation.ts diff --git a/src/pages/payment/data-notification/data-notification-page.tsx b/src/pages/payment/data-notification/data-notification-page.tsx index b2053c0..aa74a3c 100644 --- a/src/pages/payment/data-notification/data-notification-page.tsx +++ b/src/pages/payment/data-notification/data-notification-page.tsx @@ -1,9 +1,10 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { PaymentTab } from '@/entities/payment/ui/payment-tab'; import { DataNotificationWrap } from '@/entities/payment/ui/data-notification-wrap'; -import { PaymentTabKeys } from '@/entities/payment/model/types'; +import { PaymentNonCardResponse, PaymentNotificationDataResponse, PaymentTabKeys } from '@/entities/payment/model/types'; +import { usePaymentNotificationDataMutation } from '@/entities/payment/api/use-payment-notification-data-mutation'; import { HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, @@ -14,8 +15,13 @@ import { export const DataNotificationPage = () => { const { navigate } = useNavigate(); + + const { mutateAsync: paymentNotificationData } = usePaymentNotificationDataMutation(); const [activeTab, setActiveTab] = useState(PaymentTabKeys.DataNotification); + const [mid, setMid] = useState('nictest00g'); + const [gid, setGid] = useState('nictest00g'); + const [paymentNotificationDataResult, setPaymentNotificationDataResult] = useState(); useSetHeaderTitle('결제 관리'); useSetHeaderType(HeaderType.LeftArrow); @@ -24,13 +30,31 @@ export const DataNotificationPage = () => { navigate(PATHS.home); }); + const callPaymentNotificationData = () => { + let params = { + mid: mid, + gid: gid + }; + + paymentNotificationData(params).then((rs) => { + console.log(rs); + setPaymentNotificationDataResult(rs); + }); + }; + + useEffect(() => { + callPaymentNotificationData(); + }, []); + return ( <>
- +
diff --git a/src/pages/payment/info/info-page.tsx b/src/pages/payment/info/info-page.tsx index 119f7ca..3ad1db0 100644 --- a/src/pages/payment/info/info-page.tsx +++ b/src/pages/payment/info/info-page.tsx @@ -1,9 +1,11 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { PaymentTab } from '@/entities/payment/ui/payment-tab'; import { InfoWrap } from '@/entities/payment/ui/info-wrap'; -import { PaymentTabKeys } from '@/entities/payment/model/types'; +import { PaymentCardResponse, PaymentNonCardResponse, PaymentTabKeys } from '@/entities/payment/model/types'; +import { usePaymentCardMutation } from '@/entities/payment/api/use-payment-card-mutation'; +import { usePaymentNonCardMutation } from '@/entities/payment/api/use-payment-non-card-mutation'; import { HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, @@ -14,8 +16,15 @@ import { export const InfoPage = () => { const { navigate } = useNavigate(); - + + const { mutateAsync: paymentCard } = usePaymentCardMutation(); + const { mutateAsync: paymentNonCard } = usePaymentNonCardMutation(); + const [activeTab, setActiveTab] = useState(PaymentTabKeys.Info); + const [mid, setMid] = useState('nictest00g'); + + const [paymentCardResult, setPaymentCardResult] = useState(); + const [paymentNonCardResult, setPaymentNonCardResult] = useState(); useSetHeaderTitle('결제 관리'); useSetHeaderType(HeaderType.LeftArrow); @@ -24,13 +33,44 @@ export const InfoPage = () => { navigate(PATHS.home); }); + const callPaymentCard = () => { + let params = { + mid: mid, + paymentMethod: 'CREDIT_CARD' + }; + + paymentCard(params).then((rs) => { + console.log(rs); + setPaymentCardResult(rs); + }); + }; + const callPaymentNonCard = () => { + let params = { + mid: mid, + paymentMethod: 'ACCOUNT_TRANSFER' + }; + + paymentNonCard(params).then((rs) => { + console.log(rs); + setPaymentNonCardResult(rs); + }); + }; + + useEffect(() => { + callPaymentCard(); + callPaymentNonCard(); + }, []); + return ( <>
- +
diff --git a/src/pages/support/notice/detail-page.tsx b/src/pages/support/notice/detail-page.tsx index 6f7f14b..5df5c9d 100644 --- a/src/pages/support/notice/detail-page.tsx +++ b/src/pages/support/notice/detail-page.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; import { useLocation } from 'react-router'; import { PATHS } from '@/shared/constants/paths'; -import { useNoticeDetailMutation } from '@/entities/support/api/use-notice-detail-mutaion'; +import { useNoticeDetailMutation } from '@/entities/support/api/use-notice-detail-mutation'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { HeaderType } from '@/entities/common/model/types'; import { NoticeItem } from '@/entities/support/model/types'; diff --git a/src/pages/transaction/cash-receipt/detail-page.tsx b/src/pages/transaction/cash-receipt/detail-page.tsx index 81b7d27..ee125a4 100644 --- a/src/pages/transaction/cash-receipt/detail-page.tsx +++ b/src/pages/transaction/cash-receipt/detail-page.tsx @@ -22,7 +22,7 @@ import { useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; import { CashReceitPurposeUpdateBottomSheet } from '@/entities/transaction/ui/cash-receit-purpose-update-bottom-sheet'; -import { useCashReceiptPurposeUpdateMutation } from '@/entities/transaction/api/use-cash-receipt-purpose-update'; +import { useCashReceiptPurposeUpdateMutation } from '@/entities/transaction/api/use-cash-receipt-purpose-update-mutation'; export const CashReceiptDetailPage = () => { const { navigate } = useNavigate(); diff --git a/src/pages/transaction/cash-receipt/hand-written-issuance-page.tsx b/src/pages/transaction/cash-receipt/hand-written-issuance-page.tsx index e4cc83f..24dfd61 100644 --- a/src/pages/transaction/cash-receipt/hand-written-issuance-page.tsx +++ b/src/pages/transaction/cash-receipt/hand-written-issuance-page.tsx @@ -6,7 +6,7 @@ import { CashReceiptHandWrittenIssuanceStep2 } from '@/entities/transaction/ui/c import { CashReceiptPurposeType, ProcessStep } from '@/entities/transaction/model/types'; import { HeaderType} from '@/entities/common/model/types'; import { useSetFooterMode, useSetHeaderTitle, useSetHeaderType } from '@/widgets/sub-layout/use-sub-layout'; -import { useCashReceiptManualIssueMutation } from '@/entities/transaction/api/use-cash-receipt-manual-issue'; +import { useCashReceiptManualIssueMutation } from '@/entities/transaction/api/use-cash-receipt-manual-issue-mutation'; export const CashReceitHandWrittenIssuancePage = () => { const { navigate } = useNavigate(); diff --git a/src/shared/api/api-url-home.ts b/src/shared/api/api-url-home.ts index 09ef2ce..0869c3c 100644 --- a/src/shared/api/api-url-home.ts +++ b/src/shared/api/api-url-home.ts @@ -3,7 +3,7 @@ import { API_URL_KEY, } from './../constants/url'; -/* Hoem Management = 홈 API */ +/* Home Management = 홈 API */ export const API_URL_HOME = { homeToday: () => { // POST: 오늘 매출 및 정산 조회 diff --git a/src/shared/api/api-url-payment.ts b/src/shared/api/api-url-payment.ts index 01c1b3d..df81a60 100644 --- a/src/shared/api/api-url-payment.ts +++ b/src/shared/api/api-url-payment.ts @@ -5,7 +5,7 @@ import { /* Payment Management = 결제관리 API */ export const API_URL_PAYMENT = { - paymentnotificationData: () => { + paymentNotificationData: () => { // POST: 결제데이터 통보 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/payment/notification/data`; }, diff --git a/src/shared/api/urls.ts b/src/shared/api/urls.ts index e21e209..af7dd8a 100644 --- a/src/shared/api/urls.ts +++ b/src/shared/api/urls.ts @@ -110,80 +110,6 @@ export const API_URL = { }, - /* Extension Management - 부가서비스 API */ - extensionSmsResend: () => { - // POST: SMS 결제 통보 > SMS 재발송 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/resend`; - }, - extensionSmsList: () => { - // POST: SMS 결제 통보 목록 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/list`; - }, - extensionSmsDownloadExcel: () => { - // POST: SMS 결제 통보 엑셀 다운 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/download/excel`; - }, - extensionSmsDetail: () => { - // POST: SMS 결제 통보 상세 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/detail`; - }, - extensionList: () => { - // POST: 부가서비스 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/list`; - }, - extensionKeyinList: () => { - // POST: KEY-IN 결제 목록 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/list`; - }, - extensionKeyinDownloadExcel: () => { - // POST: KEY-IN 결제 엑셀 다운 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/download/excel`; - }, - extensionKeyinApply: () => { - // POST: KEY-IN 결제 > 결제 신청 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/keyin/apply`; - }, - extensionArsResend: () => { - // POST: SMS 신용카드 ARS 결제 > SMS 재전송 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/resend`; - }, - extensionArsList: () => { - // POST: 신용카드 ARS 결제 > 목록 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/list`; - }, - extensionArsDownloadExcel: () => { - // POST: 신용카드 ARS 결제 > 엑셀 다운 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/download/excel`; - }, - extensionArsDetail: () => { - // POST: 신용카드 ARS 결제 > 상세 내용 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/detail`; - }, - extensionArsApply: () => { - // POST: 신용카드 ARS 결제 > 결제 신청 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/ars/apply`; - }, - extensionAlimtalkSettingSave: () => { - // POST: 알림톡 결제 통보 > 서비스 설정 저장 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/setting/save`; - }, - extensionAlimtalkSettingDetail: () => { - // POST: 알림톡 결제 통보 > 서비스 설정 목록 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/setting/detail`; - }, - extensionAlimtalkList: () => { - // POST: 알림톡 결제 통보 목록 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/list`; - }, - extensionAlimtalkDownloadExcel: () => { - // POST: 알림톡 결제 통보 엑셀 다운 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/download/excel`; - }, - extensionAlimtalkDetail: () => { - // POST: 알림톡 결제 통보 상세 조회 - return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/alimtalk/detail`; - }, - /* Empty Token API Management - jwt 토큰이 없는 API 관리 */ emptyTokenVerifyCode: () => { // POST: 인증 코드 검증 diff --git a/src/shared/constants/url.ts b/src/shared/constants/url.ts index 8b4b652..a9ce9e4 100644 --- a/src/shared/constants/url.ts +++ b/src/shared/constants/url.ts @@ -2,7 +2,12 @@ const { origin } = window.location; export const CURRENT_URL = `${origin}`; const getAPIBaseUrl = () => { - return CURRENT_URL; + let rs = CURRENT_URL; + console.log('VITE_APP_ENV : ', import.meta.env.VITE_APP_ENV); + if(import.meta.env.VITE_APP_ENV === 'production'){ + rs = import.meta.env.VITE_APP_API_PROXY_HOST; + } + return rs; }; const getHeaderUserAgent = () => { let os = 'Android';