diff --git a/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/CHANGELOG.md b/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/CHANGELOG.md index 75a430e1..2f015e2f 100644 --- a/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/CHANGELOG.md +++ b/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/CHANGELOG.md @@ -12,3 +12,4 @@ - 환경설정·알림톡 템플릿 관리·발송 이력 등 관리자 화면 텍스트와 발송 결과 코드 안내의 일본어 번역 추가 — 관련 화면이 일본어 로케일에서 자연스럽게 표시됩니다. - 후불 한도 초과(9071) 결과 코드 사유의 일본어 번역 추가. - 잔액부족 알림의 채널군 라벨(문자/알림톡) 일본어 번역 추가. +- 발송 결과 코드 사유를 최신 공식 명세에 맞춰 정합화(추가·정정)한 내용을 일본어 번역에 반영. diff --git a/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/backend/ja/result_codes.php b/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/backend/ja/result_codes.php index 13b492a0..e16ebad7 100644 --- a/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/backend/ja/result_codes.php +++ b/lang-packs/_bundled/g7-plugin-sirsoft-message_bizppurio-ja/backend/ja/result_codes.php @@ -2,49 +2,53 @@ return [ '1000' => '成功', - '2000' => 'リクエストパラメータエラー', - '3001' => '必須パラメータが不足しています', - '3002' => 'トークン無効(期限切れ·廃止)', - '3004' => '許可されていないリクエスト', - '3005' => '認証情報が無効です', - '3006' => 'アカウント情報エラー', - '3007' => '発信番号が未登録です', - '3009' => 'メッセージタイプエラー', - '3011' => '一時的な処理遅延', - '3013' => '一時的なシステムエラー', + '2000' => 'メッセージが無効です', + '3001' => '認証情報が無効です(Basic)', + '3002' => 'トークンが無効です(期限切れ·廃止)', + '3003' => 'IPが無効です', + '3004' => 'アカウントが無効です', + '3005' => '認証情報が無効です(Bearer)', + '3006' => 'アカウントが存在しません', + '3007' => 'アカウントパスワードが無効です', + '3009' => 'アカウントが停止状態です', + '3010' => 'アクセス許可IPが一致しません', + '3011' => '不明なエラー(bizppurio)', + '3013' => '完了処理されていないメッセージ', '4100' => '成功', '4400' => '電波の弱い地域', - '4401' => '電源がオフです', - '4402' => 'ストレージ容量超過', - '4410' => '無効な番号', - '4414' => '欠番·停止', - '4420' => 'その他の端末エラー', - '4430' => 'スパム受信拒否', - '4443' => 'その他のエラー', + '4401' => '電源オフ', + '4402' => 'ストレージ超過', + '4410' => '不正な番号', + '4414' => '結番·停止', + '4420' => 'その他端末エラー', + '4430' => 'スパム', + '4431' => '送信制限受信拒否(スパム)', + '4443' => 'スパムブロック', '5003' => '一時的な送信エラー', '5004' => '一時的な送信エラー', '5005' => '一時的な送信エラー', '6600' => '成功', '6603' => '電波の弱い地域', - '6604' => '電源がオフです', - '6606' => '無効な番号', - '6621' => 'メッセージ長が超過しています', + '6604' => '電源オフ', + '6606' => '不正な番号', + '6621' => 'メッセージ長超過', '6641' => 'スパムブロック', '7000' => '成功', + '7103' => '発信プロフィールキーが無効です', '7106' => '削除された発信キー', '7107' => 'ブロックされた発信キー', - '7204' => 'テンプレート不一致', - '7206' => '審査されていないテンプレート', + '7204' => 'メッセージ内容がテンプレートと不一致です', + '7206' => 'シリアルナンバー形式が不一致です', '7306' => 'カカオシステムエラー', '7307' => '処理遅延', '7308' => '電話番号エラー', '7320' => '受信ブロック', - '7325' => '変数長が超過しています', + '7325' => '変数長超過', '7421' => 'タイムアウト', - '7436' => 'ウォレット残高不足(アラームトーク)', - '7437' => 'メッセージ要求失敗', - '7523' => 'その他のエラー', + '7436' => 'ウォレット残高不足(アラートトーク)', + '7437' => 'メッセージリクエスト失敗', + '7523' => '080受信拒否(スパム)', '9000' => '一時的なシステムエラー', - '9070' => '残高不足(メール)', + '9070' => '残高不足(SMS)', '9071' => '後払い限度額超過', ]; diff --git a/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md b/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md index 63f03b92..28c1dfb6 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md +++ b/plugins/_bundled/sirsoft-message_bizppurio/CHANGELOG.md @@ -37,6 +37,7 @@ - 알림톡 템플릿이 연결되지 않았거나 문자 템플릿이 없는 등 발송 자체를 시도하지 못한 경우, 관리자 알림 발송 이력 화면에 "성공"이 아닌 "실패"로 정확히 표시됩니다. - 플러그인을 삭제하면 이 플러그인이 알림 설정에 추가했던 문자·알림톡 채널이 함께 정리됩니다. 메일·사이트 내 알림 등 다른 채널과 알림 자체는 그대로 유지되며, 플러그인을 다시 설치하면 문자·알림톡 채널이 자동으로 복원됩니다. - 잔액 부족으로 발송이 실패해 관리자에게 보내는 알림에서, 실패한 채널(문자/알림톡)과 결과 코드가 안내 문구에 실제 값으로 표시됩니다. 후불 결제 한도를 초과한 경우도 잔액 부족과 동일하게 관리자에게 알립니다. +- 발송 결과 코드의 사유 안내를 비즈뿌리오 최신 공식 명세에 맞춰 정비했습니다. 일부 코드의 설명을 정정하고 누락된 코드(접속 IP 오류, 수신거부, 발신 프로필 키 오류 등)를 추가해, 발송 이력에서 실패 사유가 더 정확히 표시됩니다. ### Changed diff --git a/plugins/_bundled/sirsoft-message_bizppurio/lang/en/result_codes.php b/plugins/_bundled/sirsoft-message_bizppurio/lang/en/result_codes.php index 42c6b7b1..48b0e9f0 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/lang/en/result_codes.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/lang/en/result_codes.php @@ -7,8 +7,8 @@ declare(strict_types=1); | Bizppurio result code → reason (English) |-------------------------------------------------------------------------- | -| Source: Bizppurio API manual "9. Status_Code" table -| As of: 2026-07-13 (plan appendix C-3, phase 1 scope) +| Source: Bizppurio official response-code docs (https://bizppurio.github.io/response-codes/) +| As of: 2026-07-27 (aligned to the latest official docs; legacy manual wording corrected) | Scope: common(2000~9071) + SMS(4100~4443) + LMS(6600~6641) + Alimtalk(7000~7523). | RCS(8000s)/NaverTalkTalk(part of 5000s) are out of scope (follow-up D15). | @@ -17,16 +17,18 @@ declare(strict_types=1); return [ // ── Common / send response ─────────────────────────── '1000' => 'Success', - '2000' => 'Invalid request parameter', - '3001' => 'Missing required parameter', + '2000' => 'Message is invalid', + '3001' => 'Invalid authentication (Basic)', '3002' => 'Invalid token (expired/revoked)', - '3004' => 'Request not allowed', - '3005' => 'Invalid authentication', - '3006' => 'Account information error', - '3007' => 'Sender number not registered', - '3009' => 'Message type error', - '3011' => 'Temporary processing delay', - '3013' => 'Temporary system error', + '3003' => 'Invalid IP', + '3004' => 'Account is invalid', + '3005' => 'Invalid authentication (Bearer)', + '3006' => 'Account does not exist', + '3007' => 'Invalid account password', + '3009' => 'Account suspended', + '3010' => 'IP not in allowlist', + '3011' => 'Unknown error (Bizppurio)', + '3013' => 'Message not completed', '5003' => 'Temporary delivery error', '5004' => 'Temporary delivery error', '5005' => 'Temporary delivery error', @@ -42,8 +44,9 @@ return [ '4410' => 'Invalid number', '4414' => 'Disconnected/suspended number', '4420' => 'Other device error', - '4430' => 'Spam rejection', - '4443' => 'Other error', + '4430' => 'Spam', + '4431' => 'Delivery-restricted opt-out (spam)', + '4443' => 'Spam blocked', // ── LMS report ─────────────────────────────────────── '6600' => 'Success', @@ -55,10 +58,11 @@ return [ // ── Alimtalk report ────────────────────────────────── '7000' => 'Success', + '7103' => 'Invalid sender profile key', '7106' => 'Deleted sender key', '7107' => 'Blocked sender key', - '7204' => 'Template mismatch', - '7206' => 'Unapproved template', + '7204' => 'Message content does not match template', + '7206' => 'Serial number format mismatch', '7306' => 'Kakao system error', '7307' => 'Processing delayed', '7308' => 'Phone number error', @@ -67,5 +71,5 @@ return [ '7421' => 'Timeout', '7436' => 'Insufficient wallet balance (Alimtalk)', '7437' => 'Message request failed', - '7523' => 'Other error', + '7523' => '080 opt-out (spam)', ]; diff --git a/plugins/_bundled/sirsoft-message_bizppurio/lang/ko/result_codes.php b/plugins/_bundled/sirsoft-message_bizppurio/lang/ko/result_codes.php index d6387fc5..63144999 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/lang/ko/result_codes.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/lang/ko/result_codes.php @@ -7,8 +7,8 @@ declare(strict_types=1); | 비즈뿌리오 결과 코드 → 사유 (한국어) |-------------------------------------------------------------------------- | -| 출처: 비즈뿌리오 API 매뉴얼 "9. Status_Code" 표 -| 기준일: 2026-07-13 (계획서 부록 C-3 1차 범위) +| 출처: 비즈뿌리오 공식 응답 코드 문서 (https://bizppurio.github.io/response-codes/) +| 기준일: 2026-07-27 (최신 공식 문서 기준으로 정합화 — 구 매뉴얼 표기 정정) | 범위: 공통(2000~9071) + SMS(4100~4443) + LMS(6600~6641) + 알림톡(7000~7523) | RCS(8000대)·네이버톡톡(5000대 일부)은 범위 밖(후속 D15). | @@ -20,16 +20,18 @@ declare(strict_types=1); return [ // ── 공통 / 발송 응답 ────────────────────────────────── '1000' => '성공', - '2000' => '요청 파라미터 오류', - '3001' => '필수 파라미터 누락', + '2000' => '메시지가 유효하지 않음', + '3001' => '인증 정보 무효(Basic)', '3002' => '토큰 무효(만료·폐기)', - '3004' => '허용되지 않은 요청', - '3005' => '인증 정보 무효', - '3006' => '계정 정보 오류', - '3007' => '발신번호 미등록', - '3009' => '메시지 타입 오류', - '3011' => '일시적 처리 지연', - '3013' => '일시적 시스템 오류', + '3003' => 'IP 무효', + '3004' => '계정이 유효하지 않음', + '3005' => '인증 정보 무효(Bearer)', + '3006' => '계정이 존재하지 않음', + '3007' => '계정 암호 무효', + '3009' => '계정 중지 상태', + '3010' => '접속 허용 IP 불일치', + '3011' => '알 수 없는 오류(비즈뿌리오)', + '3013' => '완료 처리되지 않은 메시지', '5003' => '일시적 전송 오류', '5004' => '일시적 전송 오류', '5005' => '일시적 전송 오류', @@ -45,8 +47,9 @@ return [ '4410' => '잘못된 번호', '4414' => '결번·정지', '4420' => '기타 단말 오류', - '4430' => '스팸 수신 거부', - '4443' => '기타 오류', + '4430' => '스팸', + '4431' => '발송 제한 수신거부(스팸)', + '4443' => '스팸 차단', // ── LMS 리포트 ──────────────────────────────────────── '6600' => '성공', @@ -58,10 +61,11 @@ return [ // ── 알림톡 리포트 ───────────────────────────────────── '7000' => '성공', + '7103' => '발신 프로필 키 무효', '7106' => '삭제된 발신 키', '7107' => '차단된 발신 키', - '7204' => '템플릿 불일치', - '7206' => '검수되지 않은 템플릿', + '7204' => '메시지 내용이 템플릿과 불일치', + '7206' => '시리얼넘버 형식 불일치', '7306' => '카카오 시스템 오류', '7307' => '처리 지연', '7308' => '전화번호 오류', @@ -70,5 +74,5 @@ return [ '7421' => '타임아웃', '7436' => '지갑 잔액 부족(알림톡)', '7437' => '메시지 요청 실패', - '7523' => '기타 오류', + '7523' => '080 수신거부(스팸)', ]; diff --git a/plugins/_bundled/sirsoft-message_bizppurio/src/Services/ResultCodeResolver.php b/plugins/_bundled/sirsoft-message_bizppurio/src/Services/ResultCodeResolver.php index 190468bf..f854ce79 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/src/Services/ResultCodeResolver.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/src/Services/ResultCodeResolver.php @@ -26,12 +26,13 @@ class ResultCodeResolver /** * 재시도(일시 오류) 코드 — 큐가 재시도해야 하는 코드. * - * 공통 일시오류(5003/5004/5005/9000/3011/3013)에 더해, 알림톡 일시오류 - * (7306 카카오 시스템오류·7307 처리지연·7421 타임아웃·7437 메시지 요청실패)도 포함한다. + * 공통 일시오류(5002 요청 과다·5003/5004/5005 게이트웨이 오류·9000 알 수 없는 오류· + * 3011 비즈뿌리오 내부 오류·3013 미완료 메시지)에 더해, 알림톡 일시오류(7306 카카오 + * 시스템오류·7307 처리지연·7421 타임아웃·7437 메시지 요청실패)도 포함한다. * 7305(성공 불확실)는 이미 발송됐을 수 있어 중복발송 위험이 있으므로 제외한다. * 출처: 비즈뿌리오 공식 응답코드(bizppurio.github.io/response-codes). */ - private const RETRYABLE_CODES = ['5003', '5004', '5005', '9000', '3011', '3013', '7306', '7307', '7421', '7437']; + private const RETRYABLE_CODES = ['5002', '5003', '5004', '5005', '9000', '3011', '3013', '7306', '7307', '7421', '7437']; /** * 잔액 부족 코드 — 선불 잔액부족 9070 / 알림톡 지갑 잔액부족 7436 / diff --git a/plugins/_bundled/sirsoft-message_bizppurio/tests/Unit/Services/ResultCodeResolverTest.php b/plugins/_bundled/sirsoft-message_bizppurio/tests/Unit/Services/ResultCodeResolverTest.php index 9cdcaa7b..4da170bf 100644 --- a/plugins/_bundled/sirsoft-message_bizppurio/tests/Unit/Services/ResultCodeResolverTest.php +++ b/plugins/_bundled/sirsoft-message_bizppurio/tests/Unit/Services/ResultCodeResolverTest.php @@ -53,16 +53,27 @@ class ResultCodeResolverTest extends PluginTestCase $this->assertStringContainsString('9071', $this->resolver->label('9071')); } + /** + * 최신 명세 정합화로 추가된 코드(IP 오류·수신거부·발신프로필 키 무효)에 사유가 정의돼 + * 코드만 노출되지 않는다. + */ + public function test_newly_added_codes_have_reason(): void + { + foreach (['3003', '3010', '4431', '7103'] as $code) { + $this->assertNotNull($this->resolver->reason($code), "코드 {$code} 사유 누락"); + } + } + /** * 일시오류 코드는 Retry. * - * 공통(5003/5004/5005/9000/3011/3013)에 더해, 알림톡 일시오류(7306 카카오 시스템오류· - * 7307 처리지연·7421 타임아웃·7437 메시지 요청실패)도 재시도 대상이다. 7305(성공 불확실)는 - * 이미 발송됐을 수 있어 중복발송 위험이 있으므로 재시도 대상에서 제외한다. + * 공통(5002 요청 과다·5003/5004/5005/9000/3011/3013)에 더해, 알림톡 일시오류(7306 카카오 + * 시스템오류·7307 처리지연·7421 타임아웃·7437 메시지 요청실패)도 재시도 대상이다. + * 7305(성공 불확실)는 이미 발송됐을 수 있어 중복발송 위험이 있으므로 재시도 대상에서 제외한다. */ public function test_retryable_codes_categorized_as_retry(): void { - foreach (['5003', '5004', '5005', '9000', '3011', '3013', '7306', '7307', '7421', '7437'] as $code) { + foreach (['5002', '5003', '5004', '5005', '9000', '3011', '3013', '7306', '7307', '7421', '7437'] as $code) { $this->assertSame(ResultCategory::Retry, $this->resolver->categorize($code), "코드 {$code}"); } }