In App Billing V3の信頼性について

539 views
Skip to first unread message

wonhy...@gmail.com

unread,
Jul 10, 2013, 6:43:00 AM7/10/13
to android-g...@googlegroups.com

初めまして。

ばたばたAndroid開発をやっている若者です。

最近In App Billing V3とIabHelperを利用して課金ができるアプリを公開しましたが

たまにユーザからのお問い合わせで「課金したけどアイテムが付与されてない」との報告が発生したりします。

実際Google Checkoutから確認するとユーザは課金完了になっているにもかかわらず、

アプリでは課金失敗になっています。

その割合は全体課金の3-4%ですが、なぜこのような問題が発生するのかかなり気になります。

コードではIabHelperを利用していて、

onIabPurchaseFinishedからIabResultとPurchaseのデータをチェックして課金成功か失敗かを判定しています。

ここでユーザが課金したにもかかわらず稀にIabResultのisSuccess()がfalseだったり、

Purchaseオブジェクトのデータがnullだったりということが発生しているのではないかと疑問を抱えている状況です。

皆さんも同じ現象でなやんだことありましたらぜひフィードバックをよろしくお願いします。

同じ内容をAndroid-SDK-Japanグループにも残しました。

Hirokazu Fukami

unread,
Jul 10, 2013, 9:41:38 AM7/10/13
to android-g...@googlegroups.com
こんばんはfkmです。

2点質問です
1. アプリ起動時に、毎回queryはやっていますか?
In-app billing v1/v2の時とは異なり、queryは低コスト&オフラインでも使えます。
これでアプリ起動時にどのアイテムを所有しているか確認することで、
「課金したけどアイテムが有効にならない」的なことは防げると思います。

2. Fragmentを使っていませんか?
Fragmentから購入フローを呼び出す場合、Fragment#getActivity()をIabHelperに渡すと思うのですが、
この場合、onActivityResult()を適切に処理しないと、onIabPurchaseFinishedが呼ばれません。



2013/7/10 <wonhy...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Hiroaki GOTO as GORRY

unread,
Jul 10, 2013, 9:54:56 AM7/10/13
to android-g...@googlegroups.com

後藤 浩昭(GORRY)です。

あなたのプログラムがどういうものかはこの文章からはわかりませんが、
GoogleのTrivialDriveサンプルで購入不可能になる不具合を起こす方法なら
存じております。

1. 端末をWi-FiのみでBilling可能な状態にしておきます。
モバイルルータなどを経由するのをおすすめします。
2. TrivialDriveサンプルを起動し、[BUY GAS]をタップします。
3. 購入確認ダイアログが出ます。
4. [OK]をタップし、その0.5秒くらい後にWi-Fiを通信不可能にします。
モバイルルータなら電源を落とすだけでOKです。
5. 購入失敗のダイアログが表示されますが、課金は行われており
GUSは入手できません。
6. そして以後[BUY GAS]での購入が不可能になります。このとき、
購入ダイアログには「購入済み」と表示されます。

当方もこの状態からの「アプリ側のプログラムのみで復帰する方法」を
調査しているのですが、現在のところ判明していないため、以下の操作を
行ってもらうという解決法にとどまっています。

7. [設定]-[アプリ]-TrivialDrive]を選び、TrivialDriveサンプルを
強制終了させます。
8. [設定]-[アプリ]-[Google Playストア]を選び、[データ削除]を
行います。
9. 再びTrivialDriveサンプルを起動すると、先ほど購入不可能になった
GUSがリストア扱いで購入処理され、以後再び購入可能となります。

8.の代わりに「端末を再起動する」という手段もあります。




In message <3cef177d-2090-4a1a...@googlegroups.com>
"[android-group-japan: 23513] In App Billing V3の信頼性について"
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>



--
Hiroaki GOTO as "GORRY" : 後藤 浩昭
EMAIL: gorr...@gmail.com
Reply all
Reply to author
Forward
0 new messages