From 9ba284682092d371844b0817f02bbf9e4d490da8 Mon Sep 17 00:00:00 2001 From: thug0bin Date: Wed, 4 Mar 2026 00:33:25 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=95=8C=EB=A6=BC=ED=86=A1=2014?= =?UTF-8?q?=EC=9E=90=20=EC=A0=9C=ED=95=9C=20=EC=88=98=EC=A0=95=20-=20?= =?UTF-8?q?=ED=8A=B9=EC=88=98=EB=AC=B8=EC=9E=90=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=82=AD=EC=A0=9C=20(=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=96=88=EC=9D=8C)=20-=2014=EC=9E=90=20=EC=A0=9C?= =?UTF-8?q?=ED=95=9C=EC=9C=BC=EB=A1=9C=20=EC=9E=90=EB=A5=B4=EA=B8=B0=20(?= =?UTF-8?q?=EC=B9=B4=EC=B9=B4=EC=98=A4=20API=20=EC=A0=9C=ED=95=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/services/nhn_alimtalk.py | 39 +++++++++++++------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/backend/services/nhn_alimtalk.py b/backend/services/nhn_alimtalk.py index f3af174..0b1db20 100644 --- a/backend/services/nhn_alimtalk.py +++ b/backend/services/nhn_alimtalk.py @@ -100,15 +100,25 @@ def _send_alimtalk(template_code, recipient_no, template_params): def build_item_summary(items): - """구매 품목 요약 문자열 생성 (예: '타이레놀 외 3건')""" + """구매 품목 요약 문자열 생성 (예: '타이레놀 외 3건') + + Note: 카카오 알림톡 템플릿 변수는 14자 제한 + (에러: "Blacklist can't use more than 14 characters in template value.") + 특수문자(%, 괄호 등)는 문제없이 발송 가능! + """ if not items: return "약국 구매" first = items[0]['name'] - if len(first) > 20: - first = first[:18] + '..' + first = first.strip() + if len(items) == 1: - return first - return f"{first} 외 {len(items) - 1}건" + # 단일 품목: 14자 제한 (그냥 자름) + return first[:14] + + # 복수 품목: "외 N건" 붙으므로 전체 14자 맞춤 + suffix = f" 외 {len(items) - 1}건" + max_first = 14 - len(suffix) + return f"{first[:max_first]}{suffix}" def send_mileage_claim_alimtalk(phone, name, points, balance, items=None, @@ -146,24 +156,7 @@ def send_mileage_claim_alimtalk(phone, name, points, balance, items=None, success, msg = _send_alimtalk(template_code, phone, params) - if not success: - # V3 실패 로그 - _log_to_db(template_code, phone, False, msg, - template_params=params, user_id=user_id, - trigger_source=trigger_source, transaction_id=transaction_id) - - # V2 폴백 - template_code = 'MILEAGE_CLAIM_V2' - params = { - '고객명': name, - '적립포인트': f'{points:,}', - '총잔액': f'{balance:,}', - '적립일시': now_kst, - '전화번호': phone - } - success, msg = _send_alimtalk(template_code, phone, params) - - # 최종 결과 로그 + # 결과 로그 (V3만 사용, V2 폴백 제거 - V2 반려 상태) _log_to_db(template_code, phone, success, msg, template_params=params, user_id=user_id, trigger_source=trigger_source, transaction_id=transaction_id)