処理フロー仕様書 (Store Sync Receiver)
アーキテクチャ概要
Store Sync Receiver は、受動的 (Passive) なプラグインです。REST API エンドポイントを公開し、販売サイトからのPUSH通知を待ち受けます。
詳細フロー
1. Webhook 受信 (/update-status)
エンドポイント: POST /wp-json/store-sync/v1/update-status
-
セキュリティチェック:
- ヘッダー
X-Store-Sync-Secretを取得。 - 管理画面で設定された
store_sync_secretと比較。不一致なら 403 Forbidden を返却。
- ヘッダー
-
パラメータ検証:
- 必須:
username,product_slug,status - オプション:
expires_at
- 必須:
-
ユーザー特定:
username(ログインID) をキーにget_user_by()でユーザーIDを取得。- 存在しない場合は同期失敗 (404 Not Found) を返却(自動作成は行わない)。
-
ステータス同期ロジック:
-
メタデータ保存:
_store_sync_status_[slug]: 最新ステータスを保存。_store_sync_expires_[slug]: 有効期限を保存。
-
Cross Poster Pro 特有処理:
- ステータスが
activeの場合:- bbPress ロールを変更 (必要であれば)。
- バッジフラグ
_has_cp_pro_badgeを true に設定。
- それ以外 (
expired,cancelled):- バッジフラグを削除。
- ステータスが
-
Priority Support 特有処理:
- 製品がサポートプランの場合、
_priority_support_expiresメタデータを更新。
- 製品がサポートプランの場合、
-
-
レスポンス:
- 処理成功時:
success: true,updated_user_id: 123を返却。
- 処理成功時: