[In app Billing V2] 課金処理中エラーハンドリングについて

411 views
Skip to first unread message

村居

unread,
Aug 19, 2013, 12:14:01 AM8/19/13
to android-g...@googlegroups.com
皆さんはじめまして、村居と申します。

現在、In app Billing V2を使用して、アプリ内課金を実装しようとしているのですが、GooglePlayの決済のタイミングやキャンセルの可否などが分からず困っております。ぜひ皆様のお知恵をお借りしたく。

まず、アプリ内課金で以下のようなシーケンスは可能でしょうか?

(1) 課金処理をスタートする
(2) ユーザーが購入プロダクトに対応したコンテンツを付与する
(3) (2)の処理が正常に完了すれば、決済を確定する。(2)の処理で何かしらエラーがあった場合、決済をキャンセルする。

自力で調べたところ、なかなかそのような情報ソースに出会うことができませんでしたので、そもそもGooglePlayに決済のキャンセルという概念が無いのかもしれないと考えています。

もし、アプリ側でエラーが発生した際に、決済のロールバックを行いたい場合はどのようにするのが最良でしょうか?

以上、よろしくお願い致します。

Hirokazu Fukami

unread,
Aug 19, 2013, 1:12:11 AM8/19/13
to android-g...@googlegroups.com
こんにちはfkmです。

In app Billing V2はいろいろと大変なことばかりなので
In app Billing V3を使ったほうがきっとしあわせになれます

で、本題ですが、アプリ内課金のキャンセルはAPI経由で行うことができます
詳しくはここ、みてください
https://developers.google.com/android-publisher/v1_1/

2013/8/19 村居 <corda...@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

村居

unread,
Aug 19, 2013, 12:56:25 PM8/19/13
to android-g...@googlegroups.com
ご回答ありがとうございます!
決済後に、ユーザーの購入を強制的にキャンセルするというのは盲点でした。

実は今実装を試みているのが、消費型課金に属するもので、同じコンテンツをユーザーが何度も購入し消費するタイプの課金なのです。
ご紹介頂いたAPIは、これは定期課金(subscription)用のキャンセルAPIでしょうか。パラメータに必要なsubscription IDなるものを持ち合わせていないのです…。

あるいはGooglePlayには消費型課金に関するキャンセルというのは存在しないのでしょうか?
(…そもそも、消費型課金というものをGooglePlayがサポートしていないように思えます)

Hirokazu Fukami

unread,
Aug 19, 2013, 6:58:19 PM8/19/13
to android-g...@googlegroups.com
こんにちはfkmです。

In-app billing v2と書かれていたので、subscriptionの事と思っていました。すいません。。。

In-app billing v3を使って、消費するタイプのアイテムを販売する場合は、
以下のようなフローで実現できます。
1. v3で管理対象アイテムを購入してもらう
2. 購入後、購入情報をサーバーに送信
3. サーバーでアイテム数を増加させた後、アプリでconsume APIを実行

2番の実行が失敗(例えばオフラインになった)した場合、ユーザーの手元には
購入したよ という情報が残りますので、次回アプリ起動時にチェックして、リトライできます。

3番の実行が失敗した場合、アプリはリトライでサーバーに同じ購入情報を送ってくるので、
サーバー側で重複チェックをしておきます。

それでもなんらかの問題が発生し、ユーザーからどうしてもキャンセルしたい
という問い合わせを受けた場合は、Google Walletのコンソールから手作業でキャンセルという手があります。




2013/8/20 村居 <corda...@gmail.com>:

村居

unread,
Aug 20, 2013, 1:28:59 AM8/20/13
to android-g...@googlegroups.com
決済をどうこうするのではなく、リトライをしっかり行って、確実にユーザーにコンテンツが付与されるようにするということですね。
ありがとうございます!大変参考になりました!

2013年8月20日火曜日 7時58分19秒 UTC+9 fkm:
こんにちはfkmです。

In-app billing v2と書かれていたので、subscriptionの事と思っていました。すいません。。。

In-app billing v3を使って、消費するタイプのアイテムを販売する場合は、
以下のようなフローで実現できます。
1. v3で管理対象アイテムを購入してもらう
2. 購入後、購入情報をサーバーに送信
3. サーバーでアイテム数を増加させた後、アプリでconsume APIを実行

2番の実行が失敗(例えばオフラインになった)した場合、ユーザーの手元には
購入したよ という情報が残りますので、次回アプリ起動時にチェックして、リトライできます。

3番の実行が失敗した場合、アプリはリトライでサーバーに同じ購入情報を送ってくるので、
サーバー側で重複チェックをしておきます。

それでもなんらかの問題が発生し、ユーザーからどうしてもキャンセルしたい
という問い合わせを受けた場合は、Google Walletのコンソールから手作業でキャンセルという手があります。




2013/8/20 村居 <corda...@gmail.com>:
> ご回答ありがとうございます!
> 決済後に、ユーザーの購入を強制的にキャンセルするというのは盲点でした。
>
> 実は今実装を試みているのが、消費型課金に属するもので、同じコンテンツをユーザーが何度も購入し消費するタイプの課金なのです。
> ご紹介頂いたAPIは、これは定期課金(subscription)用のキャンセルAPIでしょうか。パラメータに必要なsubscription
> IDなるものを持ち合わせていないのです…。
>
> あるいはGooglePlayには消費型課金に関するキャンセルというのは存在しないのでしょうか?
> (…そもそも、消費型課金というものをGooglePlayがサポートしていないように思えます)
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-group-ja...@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages