Files
jaengseung-made/lib/payment-channels.ts
gahusb 769544b453 feat: 포트원 V2 결제 마이그레이션 + 법적 페이지 추가 (PG 심사용)
- 토스페이먼츠 SDK → 포트원 V2 (@portone/browser-sdk) 전환
- 4채널 결제수단 선택 UI: 카드(KPN)/카카오페이/네이버페이/토스페이
- 서버 결제 검증 API를 포트원 V2 조회 방식으로 변경
- 이용약관(/legal/terms), 개인정보처리방침(/legal/privacy), 환불정책(/legal/refund) 페이지 생성
- 푸터에 법적 페이지 링크 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 23:52:22 +09:00

51 lines
1.2 KiB
TypeScript

/**
* 포트원 V2 결제 채널 설정
* 포트원 admin에서 채널 추가 후 각 Channel Key를 .env.local에 설정
*/
export type PayMethod = 'CARD' | 'EASY_PAY';
export interface PaymentChannel {
id: string;
label: string;
icon: string; // SVG or emoji placeholder
channelKey: string;
payMethod: PayMethod;
}
export const PAYMENT_CHANNELS: PaymentChannel[] = [
{
id: 'card',
label: '신용/체크카드',
icon: '💳',
channelKey: process.env.NEXT_PUBLIC_PORTONE_CHANNEL_KPN ?? '',
payMethod: 'CARD',
},
{
id: 'kakaopay',
label: '카카오페이',
icon: '🟡',
channelKey: process.env.NEXT_PUBLIC_PORTONE_CHANNEL_KAKAOPAY ?? '',
payMethod: 'EASY_PAY',
},
{
id: 'naverpay',
label: '네이버페이',
icon: '🟢',
channelKey: process.env.NEXT_PUBLIC_PORTONE_CHANNEL_NAVERPAY ?? '',
payMethod: 'EASY_PAY',
},
{
id: 'tosspay',
label: '토스페이',
icon: '🔵',
channelKey: process.env.NEXT_PUBLIC_PORTONE_CHANNEL_TOSSPAY ?? '',
payMethod: 'EASY_PAY',
},
];
/** channelKey가 설정된 채널만 반환 */
export function getActiveChannels(): PaymentChannel[] {
return PAYMENT_CHANNELS.filter((ch) => ch.channelKey.length > 0);
}