第 19 章 / 全 27 章
通知センター
システムが管理者向けに発する通知を、ヘッダーの ベルアイコン と一覧画面で確認し、種別ごとにメール・Slack でも受け取れるようにする機能です。加盟店向けの「お知らせ配信」とは別物で、管理者だけが見ます。
通知の種類
| 重要度 | 種別 | 発生タイミング | 表示されるロール |
|---|---|---|---|
| 重大 | Webhook の断念 | 加盟店への通知が 5 回失敗して断念したとき | admin / developer |
| 重大 | 決済手段の全体停止 | 設定画面で全体停止したとき(加盟店別は警告) | 全員(加盟店別は admin / cs) |
| 重大 | バッチ実行の失敗 | cron(振込期限・Webhook 再送・定期課金・決済手段再開・通知)が例外で終了したとき | admin / developer |
| 重大 | チャージバック期限 | 異議申立期限まで 3 日以内の案件(毎時の cron が確認) | admin / accounting |
| 警告 | 振込期限超過(日次) | 振込期限を過ぎた振込待ちの件数を 1 日 1 通にまとめて | admin / accounting / cs |
| 警告 | コンビニ支払期限超過(日次) | フェーズ K で有効になります | admin / accounting / cs |
| 警告 | ブラックリスト候補 | 連続失敗検知で候補が自動登録されたとき | admin / cs |
| 警告 | 限度額超過ブロック | 加盟店の限度額で申請を失敗として記録したとき | admin / accounting / cs |
| 警告 | 定期課金の支払失敗 | 課金が失敗して再試行待ちになったとき(3 回目は重大) | admin / accounting / cs |
| 警告 | 精算バッチの保留 | 精算を保留にしたとき | admin / accounting |
| 情報 | 精算バッチの生成 | 精算バッチを生成したとき | admin / accounting |
| 情報 | 返金申請 | 返金申請が作られたとき(承認権限を持つロールにのみ) | admin / accounting |
| 情報 | 加盟店の新規登録 | 加盟店アカウントを発行したとき | admin / accounting / cs |
同じ種別・同じ対象(例: 同じ Webhook、同じチャージバック)の通知は 24 時間に 1 通 に抑制されます。
画面
- ベルアイコン(ヘッダー): 未読件数のバッジと最新 10 件のドロップダウン。クリックで既読になり、関連画面へ移動します。60 秒ごとに自動更新されます。
- 一覧(配信 → 通知センター): 種別・重要度・既読 / 未読・期間で絞り込み、すべて既読にする でまとめて既読にできます。既読は管理者ごとに記録されます。
- 通知設定(一覧の右上、または ベル → 通知設定): 種別ごとに メールも送る / Slack も送る を選びます。アプリ内は常に有効です。自分の設定だけを変更できます。
メールと Slack
- メール はメールテンプレート「通知」(プレースホルダー
title/body/link)で送信され、メール送信ログ に記録されます。宛先は管理者アカウントのメールアドレス、言語はEMAIL_DEFAULT_LANG(既定 ja)です。 - Slack は 全体設定(admin)の Incoming Webhook URL に投稿します。テスト送信 で疎通を確認できます。失敗時は 1 回リトライし、結果は送信ログ(SlackLog)に残ります。URL が未設定のあいだは通知設定で Slack を選べません。
- 配信は通知の発生直後に行われます。トランザクション内で発生した通知は毎時 50 分の cron
/api/cron/notificationsが配信します(同じ cron が日次まとめとチャージバック期限の確認も行います)。
API
| リクエスト | 内容 | |
|---|---|---|
| `GET /api/notifications?kind=&severity=&read=unread | read&from=&to=&page=` | 自分に表示される通知の一覧(未読数付き) |
GET /api/notifications/unread | ベル用: 未読数と最新 10 件 | |
POST /api/notifications/<id>/read / POST /api/notifications/read-all | 既読にする | |
GET/PUT /api/notifications/preferences | 自分の種別 × チャネル設定 | |
POST /api/global-settings/slack-test { url? } | Slack のテスト送信(admin) |
デモ環境(テスト実行時や WEBHOOK_DELIVERY=queue)では Slack へ実送信せず、送信ログに demo として記録します。