【Google】アプリ内課金(Google Play Billing)の全体像と記事まとめ
Google Play のアプリ内課金(Google Play Billing)について、これまで実装や運用の TIPS を記事として蓄積してきました。
ですが、API のバージョンアップや機能追加で、ここ数年は変化が大きくなっています。
そこで、アプリ内課金まわりの記事をテーマ別にたどれるよう、このページを入り口(ハブ)として整理しました。
アプリ内課金の主要な 4 つのテーマ
Google Play のアプリ内課金は、大きく次の 4 つのテーマで捉えると整理しやすいです。
- 定期購入(サブスクリプション)
- 1 回限りの購入(都度課金)
- 注文情報(orders)
- リアルタイムデベロッパー通知(RTDN)
定期購入(サブスクリプション)
月額や年額など、継続して課金が発生するタイプの商品です。
更新・解約・一時停止・猶予期間など、状態の管理が最も複雑なテーマと言えます。
購入から解約までのライフサイクルは、以下のページで詳しく解説しています。
購入がどの割引段階(無料トライアル・初回割引・通常)かを判定する offerPhase の扱いとサブスク状態管理のベストプラクティスも、あわせて参考にしてください。
1 回限りの購入(都度課金)
消費型アイテムや非消費型アイテムなど、購入のたびに完結するタイプの商品です。
定期購入に比べると状態はシンプルですが、消費(consume)や承認(acknowledge)の扱いに注意が必要です。
購入のライフサイクルは、以下のページで解説しています。
注文情報(orders)
購入によって発生した「注文」の情報を扱う、比較的新しい API です。
注文単位でどのような情報を取得できるのかは、以下のページで解説しています。
リアルタイムデベロッパー通知(RTDN)
ユーザーの購入状態が変化したときに、バックエンドへ即時に通知を届ける仕組みです。
Google Cloud の Pub/Sub を使って構築されており、どの通知をどのようにハンドリングするかが実装の中心になります。
通知の種類と処理方法は、以下のページで解説しています。
周辺トピック
4 つの主要テーマ以外にも、知っておくと役立つトピックがあります。
返金・無効購入
払い戻しやチャージバックによって無効になった購入の扱いです。
- 無効(返金・チャージバック)となった購入を通知で取得する(RTDN でリアルタイムに検知)
- Voided Purchases API で払い戻し(返金)を確認・実行する(履歴を API でまとめて取得)
トラブルシューティング
API の利用時に遭遇しやすいエラーと、その対処方法です。
- Google Play Developer API で 401 エラーが出るパターン
- 参照期限が過ぎたレシートやトークン無効化のレスポンス(400・410 エラー)
- acknowledge で 409 エラーが出るときの対処(AWS SQS 活用)
動作テスト
テスト環境でアプリ内課金を検証する方法です。
関連ニュース・制度
手数料や外部決済など、アプリ内課金まわりの制度や動向です。
