App StoreとGoogle Playにおけるin-app purchaseのライフサイクル
Flutterで作っているappで、in-app purchaseに対応することにしました。Flutterには、in_app_purchaseという公式のパッケージがあり、これを使うとApp StoreとGoogle Playの両方で動作するin-app purchaseに対応できます。しかし、それでもApp StoreとGoogle Playの各々の仕組みを知る必要はあり、それに関するまとまった情報はあんまりありませんでした。
この記事では、App StoreとGoogle Playにて、in-app purchaseで自動で更新する定期購買に対応をする際に知っておくべき事柄を記載します。Googleが公開している”Adding in-app purchases to your Flutter app“というcodelabsと、in_app_purchaseが提供している実装の例がとても参考になるので、是非見てみてください。Googleのcodelabsに至っては、App StoreとGoogle Playの両方においてどういう設定が必要かも詳細に説明してくれています。とても参考になりました 😺
購入に対する唯一のIDの値の選択
定期購買 (subscription) を購入した際には、[PurchaseDetails](https://pub.dev/documentation/in_app_purchase/latest/in_app_purchase/PurchaseDetails-class.html)
がコールバックの引数として渡されます。このオブジェクトにpurchaseID
プロパティがありますが、これが購入に対する唯一のIDとして使える値になります。App StoreとGoogle Playにおいて、この値は以下の様なフォーマットになっています。
- App Store: 16桁の数字
- Google Play: GPA.NNNN-NNNN-NNNN-NNNNN