page.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use client';
  2. import '../style.scss';
  3. import { useSearchParams } from 'next/navigation';
  4. export default function ChargeFailPage()
  5. {
  6. const searchParams = useSearchParams();
  7. const errorCode = searchParams.get('errorCode') || '';
  8. const errorMessage = searchParams.get('errorMessage') || '결제가 취소되었거나 실패했습니다.';
  9. if (errorCode === '9999') {
  10. return window.location.replace('/charge');
  11. }
  12. const handleClose = () => {
  13. if (window.opener) {
  14. window.close();
  15. } else {
  16. window.location.href = '/';
  17. }
  18. };
  19. return (
  20. <div className="charge-page">
  21. <div className="charge-page__card">
  22. <div className="charge-page__result">
  23. <div className="charge-page__result-icon charge-page__result-icon--error">✕</div>
  24. <p className="charge-page__result-message">{errorMessage}</p>
  25. {errorCode && <p className="charge-page__result-code">오류 코드: {errorCode}</p>}
  26. <button type="button" className="charge-page__submit" onClick={handleClose}>
  27. 닫기
  28. </button>
  29. </div>
  30. </div>
  31. </div>
  32. );
  33. }