きょこみのーと

技術に関係ないほうのブログ

Androidでアプリ内課金でテストアカウントなら課金できたのに一般アカウントだとエラーが出た時

意外とあせったので残しておきます。

前提条件

  • In-app Billing Version 3
  • β版でアカウントを限定してアプリを公開していた
  • β版でのテストアカウントでの課金は成功
  • β版での一般アカウントでの課金は成功
  • 前日(24時間前くらい)に最新バージョンのapkを正式版としてアップロードして公開はしない状態で置いておいた

状況

前日にアップロードしておいた最新バージョンapkを正式版として公開。 β版をプレイしていた端末ではすぐに最新Verのされたアプリにアップデートできたのですぐにプレイ。

しかし、課金で以下のエラーが発生。

D/Finsky  (11640): [1] PurchaseFragment.handleError: Error: PurchaseError{type=3 subtype=16}
D/Finsky  (11640): [1] PurchaseFragment.fail: Purchase failed: PurchaseError{type=3 subtype=16}
E/Finsky  (11640): [1] IabActivity.getResponseCodeFromError: Unexpected PurchasePermissionResponse: 16

Google Developer Consoleで登録したテストアカウントだとテスト課金が正常に行えた。

しばらく時間が経つと先ほどエラーになっていた端末も正常に課金できるようになった。

結論

GooglePlayで完全に公開される前にβ版をインストール済みのアプリでアップデートできたと思われる。 ただ、完全に公開されていないためGooglePlay側はしっかりと課金できないように弾いていたと思われる。

状況からの推論ですけどね。

まあとにかくあせりました。。。(^_^;)

アップロードしたapkが腐ってたのかと思った。。。