ライセンス状態(active/expired/revoked)

ライセンスには「現在利用可能かどうか」を示す ステータス が設定されています。
このステータスによって、ユーザーがアプリ / プラグインを 正しく利用できるかどうか が決まります。

AppCotton では、ライセンスの状態は次の 3 種類が中心となります:

ステータス説明ユーザー側の挙動認証結果
active利用中(有効)通常の利用が可能✅ 認証OK
expired有効期限切れアップグレードまたは再購入を求める❌ 認証拒否
revoked取り消し(管理者操作)利用不可、サポート対象外❌ 認証拒否

有効状態に戻すときは、管理画面からステータスを変更できます。


active(有効)

現在利用中で、認証が許可されている状態
  • Stripe決済が正常
  • サブスク中断や返金が行われていない
  • 期限(expires_at)が設定されている場合 → まだ切れていない

典型例

  • 買い切り版を購入したユーザー
  • 月額/年額サブスクが継続中のユーザー

認証挙動

→ プレミアム機能が利用可能

expired(期限切れ)

期限切れのためプレミアム機能が停止した状態
  • 主に サブスク型のプランで生じる
  • expires_at が現在時刻より前の場合、自動的に expired になる

典型例

  • 月額サブスクのカードが更新できなかった
  • 年額契約が終了したが自動更新されていない

認証挙動

→ プレミアム機能を停止
→ マイページで「更新する」を案内

再有効化方法

  • ユーザーがプランを 再購入 / 更新 する
  • Stripe の決済再試行が成功する

revoked(取り消し)

管理者が手動で使用権を無効化した状態

この状態は 不正利用返金処理後の適用 など、
明確な理由を伴うときに使用します。

管理者が revoked を選ぶ理由例

ケース理由
不正配布・共有が発覚利用を完全に停止する必要がある
返金処理を行った後継続利用を防ぐ必要がある
法人契約の権利変更別アカウントに再発行するため

認証挙動

→ 完全に利用不可(ドメイン解除操作もできない)

ステータス変更の流れ(管理者操作)

  1. WordPress 管理画面 → AppCotton → ライセンス
  2. 対象ライセンスをクリック
  3. 「状態」項目を選択:
    • active
    • expired
    • revoked
  4. 「保存」

expired → active は、再課金が完了した後に行います。


ステータスの自動更新(サブスク時)

イベント自動処理
Stripe Webhook: invoice.payment_succeeded→ active 維持/回復
Stripe Webhook: invoice.payment_failed→ 期限到達時に expired へ
Stripe Webhook: customer.subscription.deleted→ 即時 expired

サイト側(プラグイン / SaaS)での分岐例

$status = appcotton_get_license_status( $license_key );

if ( $status === 'active' ) {
    enable_premium_features();
} else {
    show_upgrade_notice();
}

まとめ

active   → 正常利用できるライセンス
expired  → サブスク切れ・期限切れ(更新で復帰)
revoked  → 管理者により取り消し(再利用不可)
  • expired はユーザー起因
  • revoked は管理者起因
  • 状態は管理画面・Webhook・認証APIで連動