アプリ内課金を実装してみて、いざ実機(Xperia Arc SO-01C)で確認してみると、クレジットカード払いは上手くいったが、「NTT Docomo利用料金と一緒に支払い」を選択すると、購入に失敗する。
spモードパスワードを入力するダイアログを閉じた後、何も音沙汰がない。
ログを確認してみると、spモードパスワード入力ダイアログである、
com.android.vending/.billing.CarrierPasswordActivity
を起動するインテントを飛ばした後に、REQUEST_PURCHASEに対してRESULT_USER_CANCELEDが返ってきている。
継続しなければならない課金認証処理中に、作り上予期してないアクティビティが起動することによって中断されてしまっているのだろうか。
ネットで調べてみると、同様の事象で苦戦している人がいた。
In-app Billing(アプリ内課金)+SPモード決済=動作不良?
私個人ではDocomo以外では未検証だったのだけど、これによればauでも同様に発生する問題みたい。softbankはパスワードを要求されないから大丈夫だったともある。
そもそも、Android2.1以前の端末ではアプリ内課金もキャリア決済もまともに動かないようで。
せっかく普及してきたAndroidユーザーの多くが対象にならないのなら、しばらくは様子見がよいのかな。
---------------------
追記(2011/7/5)
Android Developer Lab Tokyoにおいて、AndroidマーケットのセッションでIn-app BillingおよびCarrier Billing(キャリア決済)について触れられていたので、もしかしてこの件知らずにこの機能オススメしてるんじゃなかろうかと心配になった。
そこでこの件について尋ねてみたところ、その場にいらっしゃったGoogleのエンジニアの方からも問題解決を加速するよう働きかけてくださりました。
Issue 23: Direct carrier billing doesn't function
これは既知の問題で、数週間以内に Android Market アプリケーションのアップデートに含まれて修正される予定です。 いましばらくお待ちください。とのこと。
----------------------
追記(2011/7/14)
問題修正されたAndroidマーケットアプリが近日リリースされるとのこと。
この問題はこれでおしまいかな。
アプリ内課金のキャリア課金に関して
Android Market クライアントアプリのバージョンアップのお知らせ
ADLで質問してからの流れは非常に早いんだけど、実際言わなかったらどうなっていたんだろう、なんて思った。ほんとはバックグラウンドで動いてただけで私が質問したことなんて何の関係もなかったのならいいんだけど…