From 50872de7730a14b946459cc2d1c3395ece11bf06 Mon Sep 17 00:00:00 2001 From: gahusb Date: Thu, 2 Apr 2026 01:00:49 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=86=A0=EC=8A=A4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EB=A8=BC=EC=B8=A0=20=EA=B2=B0=EC=A0=9C=20fade-out=20=E2=86=92?= =?UTF-8?q?=20=EC=B9=B4=EC=B9=B4=EC=98=A4=20=EC=B1=84=EB=84=90/=EB=AC=B8?= =?UTF-8?q?=EC=9D=98=ED=95=98=EA=B8=B0=EB=A1=9C=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 결제 방식 변경: - ai-kit: PaymentButton 2개 → KAKAO_CHANNEL_URL 있으면 카카오버튼, 없으면 ContactModal로 폴백. 가격(19,900원/월) 표시 유지 - prompt: PaymentButton → 카카오버튼 or openModal() 호출로 교체 문의 시 샘플 파일 미리 제공 안내 유지 - saju: AI 해석 hasPaid=true 고정 → 무료 제공으로 전환 사주 페이지 결제 버튼 → '무료로 사주 분석하기' 링크 SajuAISection PaymentButton → 비활성화 주석 처리 환경변수 추가 (선택): - NEXT_PUBLIC_KAKAO_CHANNEL_URL: 카카오 채널 채팅 링크 - NEXT_PUBLIC_TOSS_ME_URL: toss.me 개인 송금 링크 - 토스페이먼츠 PG 키 주석 처리 (재활성화 시 해제 가능) 사주 hero AI 패턴 제거: - radial gradient orb 3개, blur 배경 → diagonal pattern - 그래디언트 텍스트 → amber-400 단색 Co-Authored-By: Claude Sonnet 4.6 --- app/saju/page.tsx | 43 ++++++---------- app/saju/result/SajuAISection.tsx | 14 +++--- app/saju/result/page.tsx | 3 +- app/services/ai-kit/page.tsx | 81 ++++++++++++++++++++++++------- app/services/prompt/page.tsx | 32 ++++++++---- 5 files changed, 109 insertions(+), 64 deletions(-) diff --git a/app/saju/page.tsx b/app/saju/page.tsx index bfb4742..78fd330 100644 --- a/app/saju/page.tsx +++ b/app/saju/page.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import Link from 'next/link'; -import PaymentButton from '../components/PaymentButton'; +// PaymentButton 비활성화 — 토스페이먼츠 결제 일시 중단 import { createClient } from '@/lib/supabase/client'; const faqItems = [ @@ -77,22 +77,16 @@ export default function SajuPage() { return (
{/* ─── Hero ─── */} -
-
-
-
+
-
-
+
+
- 전통 명리학 × AI 해석 · 무료 기본 분석 제공 + 전통 명리학 × AI 해석 · 무료

AI가 분석하는
- - 사주팔자 - + 사주팔자

수천 년의 동양 명리학과 최신 AI 기술의 만남.
@@ -288,23 +282,14 @@ export default function SajuPage() { ))}

-
₩4,900
-
1회 결제 · 영구 열람
- {hasPaid ? ( - - 새 사주 입력하기 → - - ) : ( - - AI 상세 해석 구매하기 - - )} +
현재 무료 제공 중
+
로그인 없이 즉시 분석 · 12가지 항목 AI 해석
+ + 무료로 사주 분석하기 → +
diff --git a/app/saju/result/SajuAISection.tsx b/app/saju/result/SajuAISection.tsx index f2d5384..363ea74 100644 --- a/app/saju/result/SajuAISection.tsx +++ b/app/saju/result/SajuAISection.tsx @@ -3,7 +3,7 @@ import { useState, useEffect, useRef } from 'react'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; -import PaymentButton from '@/app/components/PaymentButton'; +// PaymentButton 비활성화 — 토스페이먼츠 결제 일시 중단, 무료 제공 중 interface BirthKey { birth_year: number; @@ -313,13 +313,13 @@ export default function SajuAISection({ ))}
- - AI 해석 구매하기 · ₩4,900 - + AI 해석 무료로 보기 +
); diff --git a/app/saju/result/page.tsx b/app/saju/result/page.tsx index f62ea97..e769615 100644 --- a/app/saju/result/page.tsx +++ b/app/saju/result/page.tsx @@ -76,7 +76,8 @@ export default async function SajuResultPage({ searchParams }: PageProps) { const solarTermName = getSolarTermName(solarTermIndex); // ── 결제 여부 + 저장된 AI 해석 + 로또 구독 확인 ───────────────────── - let hasPaid = false; + // 토스페이먼츠 결제 일시 중단 — AI 사주 해석 무료 제공 중 + let hasPaid = true; let savedInterpretation: string | null = null; let hasLottoSubscription = false; try { diff --git a/app/services/ai-kit/page.tsx b/app/services/ai-kit/page.tsx index 3f85f99..506f509 100644 --- a/app/services/ai-kit/page.tsx +++ b/app/services/ai-kit/page.tsx @@ -1,7 +1,17 @@ 'use client'; +import { useState } from 'react'; import Link from 'next/link'; -import PaymentButton from '../../components/PaymentButton'; +import ContactModal from '../../components/ContactModal'; + +const KAKAO_CHANNEL_URL = process.env.NEXT_PUBLIC_KAKAO_CHANNEL_URL ?? null; + +const AI_KIT_CHECKLIST = [ + '주로 반복하는 업무 종류 (일지, 이메일, 보고서 등)', + '현재 주로 사용하는 AI 도구 (ChatGPT / Claude / Gemini 등)', + '하루 또는 주 단위로 같은 작업을 몇 번이나 반복하는지', + '사용 목적 (개인 효율화 / 팀 도입 / 소상공인 업무 등)', +]; /* ────────────────────────────────────────────────────────────── Before / After 데이터 — 각 도구별 실제 시간 비교 @@ -153,10 +163,20 @@ const FAQ = [ ]; export default function AiKitPage() { - const totalMonthlySaving = 27; // 도구 합산 월 절약 시간(추정) + const totalMonthlySaving = 27; + const [modalOpen, setModalOpen] = useState(false); return (
+ setModalOpen(false)} + service="AI 자동화 키트 — 월 19,900원" + checklist={AI_KIT_CHECKLIST} + accentColor="text-indigo-400" + headerFrom="#0a0f2e" + headerTo="#0f1a5c" + /> {/* ─── Hero ─── */}
@@ -194,14 +214,30 @@ export default function AiKitPage() {
- + + 카카오로 구독 문의 + + ) : ( + + )} +
@@ -475,14 +511,25 @@ export default function AiKitPage() {
언제든 해지 가능하니 한 달만 써보세요.

- - 월 {totalMonthlySaving}시간 되찾기 — 19,900원 → - -

로그인 후 즉시 이용 · 카드 정기결제 · 언제든 해지

+ {KAKAO_CHANNEL_URL ? ( + + + 카카오로 구독 문의 — 19,900원/월 + + ) : ( + + )} +

카카오 또는 이메일 문의 · 월 19,900원 · 언제든 해지 가능

diff --git a/app/services/prompt/page.tsx b/app/services/prompt/page.tsx index 6fb72aa..14eb012 100644 --- a/app/services/prompt/page.tsx +++ b/app/services/prompt/page.tsx @@ -3,7 +3,7 @@ import { useState } from 'react'; import Link from 'next/link'; import ContactModal from '../../components/ContactModal'; -import PaymentButton from '../../components/PaymentButton'; +const KAKAO_CHANNEL_URL = process.env.NEXT_PUBLIC_KAKAO_CHANNEL_URL ?? null; const CHECKLIST = [ '주로 어떤 AI 도구를 사용하는지 (ChatGPT / Claude / Gemini)', @@ -472,16 +472,28 @@ export default function PromptPage() {
{/* CTA */}
- - 지금 구매하기 → - + {KAKAO_CHANNEL_URL ? ( + + + 카카오로 구매 문의 + + ) : ( + + )}

- 구매 문의 시 프롬프트 샘플 파일 미리 제공 + 문의 시 프롬프트 샘플 파일 미리 제공