false, 'message' => '로그인 후 이용해 주세요.', 'redirect' => route('web.auth.login'), ]); } $memNo = (int)($sess['_mno'] ?? 0); $stat3 = (int)($sess['_mstat_3'] ?? 0); if ($memNo <= 0) { return view('web.payments.danal_finish_top', [ 'ok' => false, 'message' => '로그인 정보가 올바르지 않습니다.', 'redirect' => route('web.auth.login'), ]); } if ($stat3 !== 1) { return view('web.payments.danal_finish_top', [ 'ok' => false, 'message' => '관리자 확인이 필요합니다.', 'redirect' => url('/'), ]); } // 2) 파라미터 $skuId = (int)$request->query('sku_id', 0); $qty = (int)$request->query('qty', 0); $payId = (int)$request->query('pay_id', 0); if ($skuId <= 0 || $qty <= 0 || $payId <= 0) { return view('web.payments.danal_finish_top', [ 'ok' => false, 'message' => '요청 값이 올바르지 않습니다.', 'redirect' => url('/'), ]); } // 3) 주문 생성 + 결제 시작 $out = $this->service->checkoutAndStart($memNo, $skuId, $qty, $payId, $request); if (($out['ok'] ?? false) && ($out['view'] ?? '') === 'autosubmit') { return view('web.payments.danal_autosubmit', [ 'action' => $out['action'], 'fields' => $out['fields'], 'acceptCharset' => $out['acceptCharset'] ?? 'EUC-KR', 'attemptToken' => $out['token'] ?? ($out['meta']['token'] ?? ''), 'oid' => $out['oid'] ?? ($out['meta']['oid'] ?? ''), 'method' => $out['method'] ?? ($out['meta']['method'] ?? ''), 'phoneMode' => $out['meta']['phone_mode'] ?? '', ]); } return view('web.payments.danal_finish_top', [ 'ok' => false, 'message' => $out['message'] ?? '처리 실패', 'redirect' => $out['redirect'] ?? url('/'), ]); } }