スマホのアプリの課金について少し書いてみようと思います。
課金の認証の仕組み
スマホのアプリは、GoogleストアやAppleストアといったストアという所で販売されています。このストアはGoogleやAppleが管理するサーバーで、弊社で開発している細石のようなアプリは、これらのサーバーと通信して実際にアプリの購入を行います。この通信では、主に二種類のデータがやりとりされます。
・ユーザーが今まで何を購入したのか(何を購入していないのか)
・ユーザーが購入ボタンを押して初めて送受信されるデータ
前者はレシート(receipt)と呼ばれ、ユーザーが購入した「商品」がこのレシートに書かれています。
後者は購入(purchase)と呼ばれ、ユーザーの認証(パスワードの入力など)やペアレンタルコントロール(親が同意しているかどうか)の確認などが含まれます。これらをパスして晴れてアプリを購入することができます。
これらのデータのやり取りでは、大事な点が二つあります。一つは、購入したのは誰なのかアプリにはわからないということ。細かい話はここでは省略しますが、サーバーとの通信や暗号技術によって、この仕様が実現しています。もう一つは、アプリには審査というものがあり、アプリの購入に関して不正な処理がないかどうかなどがチェックされるという点です。ユーザーが安心して購入できるかどうかは最重要ですので、こうした審査は必須になります。
審査を通すのも大変、その後も・・
くだけた話になるのですが、この審査というものがアプリ開発者にとっては現状一つの大きな試練(?)と言ってもいいかもしれません。Appleの審査も、Googleの審査も、通らなければアプリを公開することはできません。ルールに沿って開発し、審査を通し、ようやくストアに公開されます。ただ、その数年後、もしくはもっと早い時期に、ストアのルールは改定されることになります。そして再度審査が通るように、また開発が必要になります。(細石がそうでした。)
このように将来変更されるルールに対してあらかじめ対応しておくのは、ほぼ不可能なことです。アプリを作ったらそれで終わりというわけではなく、将来の変化に対して、人も会社も対応していかなくてはならない。このことが少しでも伝われば幸いです。