Flutter + RevenueCatでのAndroidの課金処理実装とデバッグについて

  • 2021-10-18
  • 2021-10-18
  • iOS
  • 2989View
  • 0件
iOS

概要

Flutterで課金処理を実現する際にRevenueCatというサードパーティのサービスを利用すると簡易に実装することが可能です。
しかし、RevenueCatでの設定やAndroidでのデバッグにハマりポイントがいくつかあったので紹介したいと思います。

RevenueCatとは

RevenueCat は製品の購入やサブスクリプションなどのネイティブアプリ向けの課金処理を数行のコードで実現し、dashboardでアナリティクスを把握することが出来ます。クロスプラットフォームに対応しておりFlutterやReactNative, UnityなどのSDKもサポートされています。
利用料はこちらで(https://www.revenuecat.com/pricing ) 、小規模のサービスであれば無料で利用可能で、webhookやslackとの統合などを行ったり、RevenueCatを通した1ヶ月の収益が $10,000 を超える場合は有料プランとなります。
レシートの検証など、サーバが必要となる処理に関しても委譲できるため簡易に課金処理の実装が可能となります

RevenueCatでの設定

この記事ではFlutterでの実装を想定した設定を紹介します。
基本的な設定は Quick start に記載された通りに行いますが、下記の流れとなります
  1. RevenueCatにアプリ情報、アプリに紐づくApp Store Connect, Google Play Consoleの登録
  2. App Store Connect, Google Play Consoleに製品情報を登録
  3. アプリに課金処理を実装
手順の1はRevenueCatがApp Store ConnectやGoogle play consoleから製品情報を取得するためにApp-Specific Shared Secret情報credentials JSON情報を登録する必要があります。
注意点としては、Google Play Consoleに製品情報を登録するためには、一度アプリのApp Bundleをupload後に登録することが可能となります。
App Store Connectの紐付けはすんなり済みますが、Google Play Consoleの紐付けがやっかいなのでGoogle Play Consoleの紐付け設定を紹介します。

Google Play Consoleの紐付け

前提として、AndroidでRevenueCat経由でGoogle Play Consoleで設定した製品情報の取得や課金処理の分析をするためには、Google Cloud Platform (GCP)のCloud Pub/SubMonitoring Viewerというサービスを利用して行います。
そのため、下記の設定が必要となります
  1. GCPにGoogle Play Consoleに紐づくアカウントを作成(Google Play Console Developer)、サービスアカウントの作成
  2. 作成したサービスアカウントが上記2つのサービス(pub/sub, monitoring)を利用するためのRoleの設定
  3. 作成したGCPアカウントがRevenueCat経由でGoogle Play Consoleの製品情報を取得できるようにRevenueCatにcredential json情報を設定
1.は Link to a Google Developer Project こちらを参考にするとすぐに可能です。

2.はRoleの設定時でハマりポイントがあり、RevenueCatのドキュメントにあるPub/Sub AdminMonitoring Viewer のRoleを設定しないとRevenueCatにjson登録時にvalidationで弾かれてしまいます。
しかし、ドキュメント通りに進めてもRole選択時にPub/Sub AdminとMonitoring ViewerのRoleが出てこない問題がありました…
この問題が発生している場合は、サービスアカウントの作成後に GCPの左にある IAM -> 対象のサービスアカウントの右にある編集ボタンをクリック -> 別のロールを追加 でRoleが出てくるのでこちらから追加します

3. こちらは基本的にはドキュメントにある通り進めれば設定可能ですが、紐づくGCPが異なる場合やRoleが足りない場合はRevenueCatで弾かれ、弾かれた時のアラートはjson登録するフォームの上部に表示されているため、そこのエラー内容を確認しましょう。

またドキュメントにある通り、設定後即時反映ではなく時間をおいてから課金処理ができるようになる点に関しても注意しましょう
Important
It can take up to 36 hours for your Play Service Credentials to work properly with the Android Developer API. You may see “Invalid Play Store credentials” errors and be unable to make purchases with RevenueCat until this happens.

Flutter + RevenueCatでの課金処理実装

課金の実装はこちらの記事がとても参考になります。
https://zenn.dev/sakutech/articles/revenuecat-flutter-in-app-purchase

製品の復元処理がないと、iOSの審査でリジェクトされるため実装しておきましょう

課金処理の確認方法

iOSの場合は、実機に対してrelease buildをすることでRevenueCat経由で課金情報の取得、課金処理が可能となります。
Androidは少しやっかいで、クローズドテストでアプリ公開後に課金処理ができるようになるため、release buildで出来ない点に注意です。
RevenueCatのコミュニティーでも明記されています(https://community.revenuecat.com/sdks-51/why-are-offerings-or-products-empty-124

実際にSandbox環境で課金処理をした場合、RevenueCatのdashboardの Overview -> Viewing sandbox data をオンにすることで確認できます

宣伝

この課金処理を実装した個人アプリは DearGuest というアプリです!
ブライダル系のアプリなので、あなたが対象者もしくは周りにマッチしそうな人がいれば紹介して、インストールして使って頂けると幸いです!
Download on the App Store Google Play で手に入れよう
最新情報をチェックしよう!