- 토스페이먼츠 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>
51 lines
1.2 KiB
TypeScript
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);
|
|
}
|