feat: [esign] 완료 알림톡 템플릿 2종 선택 및 버튼 URL 도메인 치환

- 발송 UI에 서명 요청 + 완료 알림톡 템플릿 각각 선택 가능
- 선택한 완료 템플릿명을 DB에 저장하여 서명 완료 시 사용
- 버튼 URL 도메인을 현재 환경의 app.url로 자동 치환 (개발/운영 환경 대응)
This commit is contained in:
김보곤
2026-02-27 16:29:03 +09:00
parent 810e170644
commit 3603a06c62
4 changed files with 76 additions and 3 deletions

View File

@@ -827,11 +827,13 @@ public function send(Request $request, int $id): JsonResponse
$sendMethod = $request->input('send_method', 'email');
$smsFallback = $request->boolean('sms_fallback', true);
$templateName = $request->input('template_name');
$completionTemplateName = $request->input('completion_template_name');
$contract->update([
'status' => 'pending',
'send_method' => $sendMethod,
'sms_fallback' => $smsFallback,
'completion_template_name' => $completionTemplateName,
'updated_by' => auth()->id(),
]);
@@ -1090,6 +1092,20 @@ private function sendAlimtalk(
}
unset($btn);
// 버튼 URL 도메인을 현재 환경의 도메인으로 치환
$appHost = parse_url(config('app.url'), PHP_URL_HOST);
foreach ($buttons as &$btn) {
foreach (['Url1', 'Url2'] as $urlKey) {
if (! empty($btn[$urlKey])) {
$parsed = parse_url($btn[$urlKey]);
if (isset($parsed['host']) && $parsed['host'] !== $appHost) {
$btn[$urlKey] = str_replace($parsed['host'], $appHost, $btn[$urlKey]);
}
}
}
}
unset($btn);
$receiverNum = preg_replace('/[^0-9]/', '', $signer->phone);
\Log::info('E-Sign 알림톡 발송 시도', [