グーグル、ウェブアプリ内課金サービスを開始--「Chrome Web Store」以外も対象に

本日、GoogleからIn-App Payments APIが公開されました。これを使うと、あらゆるWEBサイトで、簡単なAPIを使って課金することができます。



まだ、米国の銀行口座を持っている開発者でなければ使えませんが、そのうち国内でも使えるようになると思うので、APIの仕様を調べてみました。APIの使い方は、Getting Startedのページにまとまっています。以下は、実際に実装したわけではないので、間違っている部分もあるかもしれないのでご了承下さい。

まず、サーバサイドでJSON Web Tokenというものを作ります。このトークンには次のように、課金する商品の内容や価格を入れて、秘密鍵で符号化します。

"name" => "Piece of Cake",
"description" => "Virtual chocolate cake to fill your virtual tummy",
"price" => "10.50",

符号化には、Google提供のJWTライブラリを使用します。Ruby、Python、Java、PHP、.Netと、ほとんどの環境のライブラリが用意されています。具体的に、Pythonのライブラリでは
 jwt.encode({"some": "payload"}, "secret")
のように符号化します。符号化結果は暗号化はされませんが、
 jwt.decode("someJWTstring", "secret")
によって、認証することができます。decodeは後で使用します。encode/decodeの実際の処理は、jwt/__init__.pyで確認することができます。

次に、クライアントサイドのJavaScriptでpayment APIのライブラリを読み込みます。JavaScriptでは課金完了と課金失敗のコールバック関数を定義しておきます。課金が完了すると、これらのコールバック関数が呼ばれることになります。課金完了のコールバック関数の中で、プレイヤーのライフ回復など、課金成功の実処理を記述することもできますが、コールバック関数をFireBugなどで直接呼ぶことができてしまうので、推奨されていません。課金結果は、サーバサイドのデータベースの中で反映させるのが望ましいです。

最後に、ボタンなどを押した場合に、goog.payments.inapp.buy関数を呼び出します。関数の引数には、最初に作成したJSON Web Tokenと、コールバック関数を与えます。これによって、ユーザに課金を促すウィンドウを開くことができます。

ユーザが課金を実行すると、課金の完了が、設定したpostback URLに対して、POSTメッセージで届きます。postback URLは、SandBoxの設定ページ、およびreal merchant accountの設定ページで設定します。POSTメッセージのデータには、buy関数で与えたJSON Web Tokenが、オーダ番号が付加された形で格納されています。これを、秘密鍵で次のように認証します。

 jwt.decode("someJWTstring", "secret")
 If the secret is wrong, it will raise a jwt.DecodeError.

認証後、正常に購入したアイテムなどのデータをサーバに書き込んだ後、200 OKを返します。その後、JavaScriptのコールバックに課金完了が通知されるわけです。

aaa


Google In-App Payments APIの手数料は何と5%!びっくりするぐらい安いです。従来、クレジットカードの課金システムというのは高い初期費用と、年間維持費用がかかってしまって、とても個人で使える代物ではありませんでした。それが参入障壁となり、アプリストアや電子書籍ストアなどのプラットフォームを個人で作るのはほぼ不可能だったのですが、Google In-App Payments APIで可能になります。これで何ができるようになるかというと、個人でもパブーのようなプラットフォームが作れるようになるのです。

サーバはGoogle App Engineを使って自動でスケールさせて、ユーザにコンテンツをアップロードしてもらって、ユーザがコンテンツを購入した場合にGoogle In-App Payments APIを使用して決済をして、手数料を得る。そこまで自動化したプラットフォームが誰でも作れるようになります。これは革命的なことです。

後は、国内でも使えるようになって、WEBマネーのようにコンビニでプリペイドカードを買えるようになって、さらにAndroidと同じ決済システムであるGoogleCheckoutを使っている利点を活かして携帯キャリア課金までできるようになれば最強ですね。一時の閉塞感を抜けだして、Google+、GoogleCheckout、GoogleAppEngine、Androidと、未来に繋がるプロダクトが出てきて、最近のGoogleは元気でいいですね。