明日も楽をするために

めんどくさがりなITエンジニアが書くメモ帳

GoogleAPIを使用したAndroidアプリのアプリ内課金のレシート取得

三連休を満喫中のみなさん
そして三連休もお仕事のみなさん
本当にお疲れ様ですつД`)・゚・。・゚゚・*:.。


今回はGoogleAPIを使用したアプリ内課金(InApp)のレシート取得について説明します。
基礎知識としてアプリ課金は現在v3というバージョンまででており、それを対象としています。


※注意
このAPIは一日20万回しか使えないため最小課金額を100円とした場合、一日2000万円まで対応可能です。それ以上の課金が発生するサービスだと別の手段も必要になります。(現状はシグネチャチェックかな)


今回使用するAPIのリファレンス
https://developers.google.com/android-publisher/v1_1/


今回この記事を書くきっかけになったのが、そもそもGoogleAPIのリファレンスが間違いだらけでとても困ったので正しい情報を残したかったのが理由です。


InapppurchaseshはOAuth2なので以下のページのどれかでOauth2を使用したTokenを取得しなければいけません。
https://developers.google.com/accounts/docs/OAuth2


サーバ(アプリ開発者)とサーバ(GoogleAPI)の通信だと図を見る限り「Service accounts」を使えばいいように思えるのですがService accountsで取得したTokenはInapppurchaseshでは使えません。


※使えません


大事なことなので二度言いました。
何を使えばいいかと言いますとWeb ServerでRefreshTokenを取得してそれを用いてAccessTokenを取得する方法しかないようです。
RefreshTokenの取得までは手動でブラウザで取得する方法が簡単かと


気になるのはRefreshTokenの有効期限なんだけど・・・RefreshTokenの有効期限はないのかな(GoogleGroupsではRefreshTokenは一度取得すればいいと書いてありましたが)
Androidで課金周りの実装見ると不安しかないのですが・・・