はじめに
サブスクの流れに乗ってアプリ継続課金に取り組むとき、一番大事なのはサービスでしょうが、その次に大事なのは課金そのものです。
ユーザーにサービスを提供できていても、対価が正しく受け取れていなかったり、その逆に課金だけしてサービスを提供できないとなったら、大変なことです。
Google Playの定期購入システムは日本語ドキュメントが比較的多く、じっくり読めばどうにか理解できる一方、細かい変更点も多く、なかなかメンテナンスが大変です。
そこで、自分の理解のために状態遷移図を作りました。
※この図は、2020/11/1のGoogle Play仕様変更前に作成されたものです。
「サービス提供中」の枠は、ユーザーにサービスを提供していい状態を示しています。
一方その外側は、サービスを提供してはいけない状態です。
サービス提供中
表内 | リアルタイムデベロッパー通知 | 詳細 | 参考URL |
---|---|---|---|
新しい定期購入 | SUBSCRIPTION_PURCHASED | ユーザーの一回目の課金が発生した状態 | |
継続課金 | SUBSCRIPTION_RENEWED | 定期購入が更新された状態 | |
課金延期 | SUBSCRIPTION_DEFERRED | 次回課金が延期になった状態 | https://developer.android.com/google/play/billing/subscriptions?hl=ja#defer |
価格変更同意 | SUBSCRIPTION_PRICE_CHANGE_CONFIRMED | アプリの価格変更をユーザーが承認した状態 | https://developer.android.com/google/play/billing/subscriptions?hl=ja#price-change |
猶予期間 | SUBSCRIPTION_IN_GRACE_PERIOD | 請求に失敗し、支払方法変更待ち | https://developer.android.com/google/play/billing/subscriptions?hl=ja#grace |
終了待ち | SUBSCRIPTION_REVOKED | ユーザーが定期購入を停止したが、最後の課金は有効期限内 | |
定期購入一時停止待ち | SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED | ユーザーが定期購入を一時停止したが、最後の課金は有効期間内 | https://developer.android.com/google/play/billing/subscriptions?hl=ja#pause |
サービス提供外
表内 | リアルタイムデベロッパー通知 | 詳細 | 参考URL |
---|---|---|---|
アプリ内ボタン | アプリ内から定期購入を購読する | ||
Google Play | 解約後12カ月以内であれば「再度定期購入」できる | https://developer.android.com/google/play/billing/subscriptions#after-in-store |
表内 | リアルタイムデベロッパー通知 | 詳細 | 参考URL |
---|---|---|---|
定期購入一時停止 | SUBSCRIPTION_PAUSED | ユーザーが定期購入を一時停止し、最後の課金も有効期間を過ぎた | https://developer.android.com/google/play/billing/subscriptions#pause |
アカウント一時停止 | SUBSCRIPTION_ON_HOLD | 猶予期間過ぎても請求失敗 or 定期購入一時停止後、再開失敗 | https://developer.android.com/google/play/billing/subscriptions#account-hold |
定期購入無効 | - | アップグレード・ダウングレード・再登録により、前の定期購入が無効になった | https://developer.android.com/google/play/billing/subscriptions#upgrade-downgrade |
終了 | SUBSCRIPTION_EXPIRED | 定期購入が期限切れになった | https://developer.android.com/google/play/billing/subscriptions?hl=ja#cancel |
参考URL
定期購入を販売する
リアルタイム デベロッパー通知のリファレンス ガイド
【Googleサブスク】購入レシートをステータス別にハンドリングする