2011/08/27:当記事末尾に補足追加。 androidアプリでアプリ内課金をするのにin-app Billingを使おうとしたが、Google先生ご提供のDungeonsのサンプルではアプリ内で署名チェックをしている。 この方法だとクライアント側を改ざんすれば正規に購入しなくても購入したように振る舞えるし、アプリ内に公開鍵を埋め込むのも嫌だと言うことで、サーバ側で署名チェックしつつ、署名チェックの時のみデータをダウンロードするサンプルを書いてみた。productId以外にsignedDataとsignatureを送るようにしている。 実際には払い戻しをした場合や課金はしたけれどダウンロードに失敗した場合などに対応する必要があるが、大まかな構造はこれでよいはず。 中にTODOが書いてあるのでそれらも対応する必要あり。開発中に毎回払い戻しをするのは嫌なので暫定的にJSONと署名に"DEV