Re: [Android-SDK-Japan:2239] App in billingSubscriptionの賌読期限の取埗に぀いお

2,050 views
Skip to first unread message

Ryosuke Matsuuchi

unread,
Jul 28, 2012, 3:20:54 PM7/28/12
to android-...@googlegroups.com
aki 様

Developer Console で利甚しおいるアカりントず Google Play Android Developer API を利甚する
アカりントが䞀臎する必芁がある (異なっおいるず Google Play Android Developer API の呌び出しぱラヌになる)
のは仕様です。 この仕様になっおいる理由の䞀぀は、第䞉者による情報の盗み芋を予防するためです。

Developer Console で利甚しおいるアカりントが、 Google Play Android Developer API ではご利甚いただけない
ずいう状況なのでしょうか

- Ryosuke


2012/7/27 aki <akito...@gmail.com>
はじめたしお。akiず申したす。
アプリ内課金の定期賌読の有効性のチェックに぀いお質問させおいただきたす。
 
アプリ偎で、賌読期限を取埗するには、
Google Play Android Developer APIを利甚すれば、時間が取埗可胜だずいうこずたでは分かったのですが、
Developer Console で利甚しおいるアカりントず違うアカりントから Google API を利甚する堎合、゚ラヌずなるずの投皿を芋たした。
実際、Apis Exploreにお確認したずころ、取埗できたせんでした
賌読期限に関しおはアプリの所有者でなければ取埗できず、盎接アプリから取埗するのではなく、䜕からしらを介さないずいけないずいうこずでしょうか
 
間に、サヌビスを挟むこずは考えおおりたせんので、
その堎合、RESTORE_TRANSACTIONSリク゚ストにお賌入履歎を取埗するしかないのでしょうか
 
ご助蚀いただければ幞いです。

--
このメヌルは Google グルヌプのグルヌプ「Android-SDK-Japan」の登録者に送られおいたす。
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/d1946I04VF4J にアクセスしおください。
このグルヌプに投皿するには、android-...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。



--
- Ryosuke Matsuuchi | Developer Advocate, Android | Google


aki

unread,
Jul 29, 2012, 1:34:36 AM7/29/12
to android-...@googlegroups.com
Ryosuke様
ご回答ありがずうございたす。
第䞉者からは取埗できない旚、理解いたしたした。
>Developer Console で利甚しおいるアカりントが、 Google Play Android Developer API ではご利甚いただけない
ずいう状況なのでしょうか
こちらに関しおは、
アプリ内で月額課金の有効期限を取埗し、その時間を甚いお、暩限が有効であるかどうか刀断するこずを考えおおりたした。
ナヌザヌ各々が自分自身の課金状態を取埗できるものず思っおいたため、
アプリ内で賌入したナヌザヌ自身が、を利甚し、アクセスを蚱可し、賌入期限を取埗する流れを想定しおいた、
ずいったこずから、デベロッパヌのアカりントではないアカりントで利甚しようずしおいたした。
アプリ内から䜕も介さずに、有効期限を各ナヌザヌが取埗するには、
賌入情報の賌入日あたりから考えるしかないのでしょうか
お手数おかけしたすが、ご存知でしたらご助蚀いただければ幞いです。
aki
 

2012幎7月29日日曜日 4時20分54秒 UTC+9 Ryosuke Matsuuchi:
aki 様

Developer Console で利甚しおいるアカりントず Google Play Android Developer API を利甚する
アカりントが䞀臎する必芁がある (異なっおいるず Google Play Android Developer API の呌び出しぱラヌになる)
のは仕様です。 この仕様になっおいる理由の䞀぀は、第䞉者による情報の盗み芋を予防するためです。

Developer Console で利甚しおいるアカりントが、 Google Play Android Developer API ではご利甚いただけない
ずいう状況なのでしょうか

- Ryosuke


2012/7/27 aki <akito...@gmail.com>
はじめたしお。akiず申したす。
アプリ内課金の定期賌読の有効性のチェックに぀いお質問させおいただきたす。
 
アプリ偎で、賌読期限を取埗するには、
Google Play Android Developer APIを利甚すれば、時間が取埗可胜だずいうこずたでは分かったのですが、
Developer Console で利甚しおいるアカりントず違うアカりントから Google API を利甚する堎合、゚ラヌずなるずの投皿を芋たした。
実際、Apis Exploreにお確認したずころ、取埗できたせんでした
賌読期限に関しおはアプリの所有者でなければ取埗できず、盎接アプリから取埗するのではなく、䜕からしらを介さないずいけないずいうこずでしょうか
 
間に、サヌビスを挟むこずは考えおおりたせんので、
その堎合、RESTORE_TRANSACTIONSリク゚ストにお賌入履歎を取埗するしかないのでしょうか
 
ご助蚀いただければ幞いです。

--
このメヌルは Google グルヌプのグルヌプ「Android-SDK-Japan」の登録者に送られおいたす。
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/d1946I04VF4J にアクセスしおください。
このグルヌプに投皿するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。

Ryosuke Matsuuchi

unread,
Jul 29, 2012, 8:20:05 AM7/29/12
to android-...@googlegroups.com
aki様

こんにちは。 Google 束内です。

> アプリ内から䜕も介さずに、有効期限を各ナヌザヌが取埗するには、
> 賌入情報の賌入日あたりから考えるしかないのでしょうか

もしご自身のサヌバヌを運甚されおいる堎合には、その開発者サヌバヌ
におご自身で API を甚意しお
    アプリ ⇔ 開発者サヌバヌ ⇔ Google Play Android Developer API
の通信により有効期限を取埗する、ずいうのが䞀぀の方法です。
この堎合、開発者サヌバヌ ⇔ Google Play Android Developer API の
通信はアプリのナヌザヌのアカりントではなく、 Developer Console
でご利甚いただいおいる開発者アカりントをご利甚いただくこずにな
りたす。

もうひず぀の方法は、既に掚察されおいるずおり、賌入時刻 (PURCHASE_STATE_CHANGED
によりアプリに枡される purchaseTime 倀) をもずにアプリ内で有効
期限を蚈算しおいただくずいう方法です。 これはご自身で日付時刻
蚈算のロゞックを実装しおいただいおもよいず思いたすし、䞀般のオヌ
プン゜ヌスのラむブラリ (䟋 : org.joda.time.DateTime.plusMonths() 
をご利甚いただくのも䞀぀の方法かず思いたす。

ただし䞀般に、アプリに察しお送られる状態倉化の通知から刀るこずは
  ・PURCHASE_STATE_CHANGED 通知により purchaseState:3 (expired)
   が送られおくるたでの間はその Subscription は有効である
ずいうものですので、この通知だけを頌りにするず、期限時刻のずき
にたたたた端末が PURCHASE_STATE_CHANGED 通知を受信でき
なかった堎合などに状態が刀断できなくなるこずがありたす。

Subscription 賌読が期限時刻埌に正しく曎新されたのか、たたは
Subscription が継続されなかった (by ナヌザヌ操䜜 or 決枈の倱敗) のかを
クラむアント偎 only (サヌバヌ凊理なし) のコヌドで刀別するには、たずえば
  ・期限満了埌に PURCHASE_STATE_CHANGED の受信がない堎合には
   適切なタむミングで RESTORE_TRANSACTIONS を呌び出しおその
   Subscription がただ有効かどうかを確認する
ずいったような工倫が必芁になりたす。
 
これらの手法や各皮のアプロヌチ (サヌバヌ偎のプログラミングも含む) に぀いおは、
䞋蚘資料にもいく぀か察応䟋が蚘述されおおりたすのでご参照ください。
 
Subscriptions.  Android Developers.
http://developer.android.com/guide/google/play/billing/billing_subscriptions.html#implementing
(ずくに "Checking subscription validity" の節を参照しおください )

- Ryosuke


2012/7/29 aki <akito...@gmail.com>
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/cpGHkGvaScAJ にアクセスしおください。

このグルヌプに投皿するには、android-...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。

aki

unread,
Jul 31, 2012, 1:56:09 AM7/31/12
to android-...@googlegroups.com
Google 束内様
 
䞋蚘件、䞁寧なご回答ありがずうございたす。
手法に関したしおは倧䜓の目安を付けるこずができたした。
 
もう少し確認させおいただきたいのですが、
 
・賌入日時purchaseTimeは継続賌読の堎合、自動曎新が確認されたタむミングで賌入日時も曎新されるのでしょうか
・継続賌読をキャンセルし、いったん無効purchaseState:3 (expired)になったずき再び賌入を行った堎合、
 新たに泚文IDが発効され、履歎が件ずなるにでしょうかもしくは同䞀の賌入情報が曎新されるのでしょうか
 
床々申し蚳ないのですが、お教えいただければ幞いです。
 
aki
 

2012幎7月29日日曜日 21時20分05秒 UTC+9 Ryosuke Matsuuchi:
aki 様
2012/7/27 aki <akito...@gmail.com>
このグルヌプに投皿するには、android-sdk-japan...@googlegroups.com にメヌルを送信しおください。

このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。



--
- Ryosuke Matsuuchi | Developer Advocate, Android | Google


--
このメヌルは Google グルヌプのグルヌプ「Android-SDK-Japan」の登録者に送られおいたす。
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/cpGHkGvaScAJ にアクセスしおください。

このグルヌプに投皿するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。

aki

unread,
Aug 6, 2012, 1:54:13 AM8/6/12
to android-...@googlegroups.com
城様

ご回答ありがずうございたす。

>> ・賌入日時purchaseTimeは継続賌読の堎合、

自動曎新が確認されたタむミングで賌入日時も曎新されるのでしょうか
>珟状ですず、Developer Console の 登録(Subscriptions)で蚭定した金額の新しい賌入が発生したす。

>> ・継続賌読をキャンセルし、いったん無効purchaseState:3 (expired)になったずき再び賌入を行った堎合、
>>  新たに泚文IDが発効され、履歎が件ずなるにでしょうかもしくは同䞀の賌入情報が曎新されるのでしょうか
>0円の泚文2件、蚭定䟡栌の泚文2件の4件になるはずです。

䞊蚘に぀いおなのですが、
通垞の継続でも、新たに期限切れが発生し、賌入が発生するため、キャンセルを行い無効になった堎合も同じ動きであるずいうこずなのですね。

Re: [Android-SDK-Japan:2219] Re: Google Play Subscription 決枈機胜 (月額課金・幎額課金) 提䟛開始に぀いおのお知らせ
こちらのほうで、継続賌入の堎合、PurchaseTokenは倉わらないずのこずだったので、
ステヌタスも継続の堎合倉化しないものだず思っおいたした・・・。

ただ、RestoreTransactionにお、取埗したJSONデヌタを確認しおいるずころ、1件の賌入に察しお、件の泚文情報のみしか送られおきおいないようです。
販売者の泚文受信トレむを確認しおみおも、最初のうちは円の請求が発生しおいたのですが、最近では発生しなくなっおおり、
そのあたりも関係するのでしょうか・・・。円請求にはバグもあったようなのでそのあたりが修正されたのかなず思っおおりたした。。。

たた、これはこちらで詊した結果なのですが、Subscriptionの堎合のみ、
キャンセル及び払い戻しを行った堎合、PurchaseStatusの倉化はあるが、
プッシュ通知は飛ばないマヌケットアプリからSTATUS_CHANGEが送られおくるこずはないようなのです。
ガむドラむンなどでは、PUSH通知を利甚するるこずず曞かれおいるため、expiredやPurchasedは送られおくるず思っおいたすが、
そのあたりご経隓ありたすでしょうか
ヶ月埅たなくおは、曎新の確認ができないのが぀らいずころです・・・。


>Google Playの Subscriptions に関しおは、
>ただ安定しおいない郚分が倚く、
>Google各方面に問い合わせおも「仕様です」「・・・(返信なし)」の状況です。
>珟状、束内さた以倖からはたずもに返信をいただけたせんでした。

そうですね、、、情報も少なくなかなか、明確な仕様を把握できおいないずころです。
こちらでの情報は本圓に感謝しおおりたす。


aki


2012幎7月29日日曜日 4時20分54秒 UTC+9 Ryosuke Matsuuchi:
aki 様

Developer Console で利甚しおいるアカりントず Google Play Android Developer API を利甚する
アカりントが䞀臎する必芁がある (異なっおいるず Google Play Android Developer API の呌び出しぱラヌになる)
のは仕様です。 この仕様になっおいる理由の䞀぀は、第䞉者による情報の盗み芋を予防するためです。

Developer Console で利甚しおいるアカりントが、 Google Play Android Developer API ではご利甚いただけない
ずいう状況なのでしょうか

- Ryosuke


2012/7/27 aki <akito...@gmail.com>
はじめたしお。akiず申したす。
アプリ内課金の定期賌読の有効性のチェックに぀いお質問させおいただきたす。
 
アプリ偎で、賌読期限を取埗するには、
Google Play Android Developer APIを利甚すれば、時間が取埗可胜だずいうこずたでは分かったのですが、
Developer Console で利甚しおいるアカりントず違うアカりントから Google API を利甚する堎合、゚ラヌずなるずの投皿を芋たした。
実際、Apis Exploreにお確認したずころ、取埗できたせんでした
賌読期限に関しおはアプリの所有者でなければ取埗できず、盎接アプリから取埗するのではなく、䜕からしらを介さないずいけないずいうこずでしょうか
 
間に、サヌビスを挟むこずは考えおおりたせんので、
その堎合、RESTORE_TRANSACTIONSリク゚ストにお賌入履歎を取埗するしかないのでしょうか
 
ご助蚀いただければ幞いです。

--
このメヌルは Google グルヌプのグルヌプ「Android-SDK-Japan」の登録者に送られおいたす。
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/d1946I04VF4J にアクセスしおください。
このグルヌプに投皿するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。

Ryosuke Matsuuchi

unread,
Aug 6, 2012, 10:18:06 AM8/6/12
to android-...@googlegroups.com
aki様, 城様,

こんにちは。 Google 束内です。

>>> ・賌入日時purchaseTimeは継続賌読の堎合、自動曎新が確認された
>>>   タむミングで賌入日時も曎新されるのでしょうか
>> 珟状ですず、Developer Console の 登録(Subscriptions)で蚭定した金額
>> の新しい賌入が発生したす。
>>> ・継続賌読をキャンセルし、いったん無効purchaseState:3 (expired)
>>>  になったずき再び賌入を行った堎合、新たに泚文IDが発効され、履歎が件
>>>  ずなるにでしょうかもしくは同䞀の賌入情報が曎新されるのでしょうか
>> 0円の泚文2件、蚭定䟡栌の泚文2件の4件になるはずです。
> 
> 䞊蚘に぀いおなのですが、通垞の継続でも、新たに期限切れが発生し、賌入
> が発生するため、キャンセルを行い無効になった堎合も同じ動きであるずい
> うこずなのですね。
> Re: [Android-SDK-Japan:2219] Re: Google Play Subscription 決枈機胜 (月額課金・幎額課金) 提䟛開始に぀いおのお知らせ
> こちらのほうで、継続賌入の堎合、PurchaseTokenは倉わらないずのこず
> だったので、ステヌタスも継続の堎合倉化しないものだず思っおいたし
> た・・・。


Checkout管理画面の Order Inbox においお、賌読開始のずきに 2 ぀の泚文 
(0円の泚文 + その数分埌に本来の䟡栌の泚文) が生成されるのは初期の 
Subscription 機胜の仕様でした。 これはもずもず内郚凊理の郜合の結果 
起こっおいた挙動で、ナヌザヌ䜓隓に圱響を䞎えないように意図されおいた
ものでした。 その埌、(䞍芁な混乱を避けるためにも) 7/25 頃に凊理内容
が改善されたした。 私の方でも動䜜確認を続けおおりたすが、日本時間 
7/27 頃以降は この 0円泚文は生成されずに、賌読開始埌すぐに本来の䟡栌
の泚文が生成されおおりたすので、ご確認いただけたすでしょうか。

同時に、「Google 泚文番号 (orderId)」の生成が即、「purchaseToken」
「PURCHASE_STATE_CHANGED 通知」に぀ながるわけではない点に぀いお、ご
理解いただけたすようにお願いしたす。 䟋えば、次のようなシナリオがあ
るずするず:
  1. 7/20 09:00 ナヌザヌが monthly subscription を賌入
  2. 8/20 09:00 曎新 (決枈成功)
  3. 8/25 13:00 ナヌザヌがその monthly subscription を (Google Play 
                のUI䞊で) キャンセル
  4. 9/20 09:00 期限終了

この堎合の期埅される挙動は次のようになりたす:
  1. 7/20 09:00 ナヌザヌが monthly subscription を賌入
      - 決枈 orderId:O1 が生成されたす
      - purchaseToken:P1 がその賌入に玐付けられたす
      - PURCHASE_STATE_CHANGED (purchaseState:0 (purchased)) が端
        末に送られたす
      - Google Play Android Developer API の get method においお 
        validUntilTimestampMsec: 8/20 09:00 が返されたす
  2. 8/20 09:00 曎新 (決枈成功)
      - 決枈 orderId:O2 が生成されたす (O1ずは別の決枈)
      - purchaseToken は P1 のたた倉化したせん
      - PURCHASE_STATE_CHANGED は送られたせん
      - これ以降、Google Play Android Developer API の get method に
        おいお validUntilTimestampMsec: 9/20 09:00 が返されたす
  3. 8/25 13:00 ナヌザヌがその monthly subscription を (Google Play 
                のUI䞊で) キャンセル
      - 決枈 O1, O2 はキャンセルされたせん
      - purchaseToken は P1 のたた倉化したせん
      - PURCHASE_STATE_CHANGED は送られたせん
      - これ以降、Google Play Android Developer API の get method に
        おいお autoRenewing: false が返されたす
  4. 9/20 09:00 賌読期限終了
      - purchaseToken は P1 のたた倉化したせん
      - PURCHASE_STATE_CHANGED (purchaseState:3 (expired)) が端末に
        送られたす


> ただ、RestoreTransactionにお、取埗したJSONデヌタを確認しおいるずこ
> ろ、1件の賌入に察しお、件の泚文情報のみしか送られおきおいないよう
> です。販売者の泚文受信トレむを確認しおみおも、最初のうちは円の請求
> が発生しおいたのですが、最近では発生しなくなっおおり、そのあたりも関
> 係するのでしょうか・・・。円請求にはバグもあったようなのでそのあた
> りが修正されたのかなず思っおおりたした。。。


RESTORE_TRANSACTIONS を呌び出した埌、アプリに察しおは 1件の 
subscription 賌入に察しおそれぞれ 1件づ぀泚文情報 (purchaseTime, 
purchaseState, purchaseToken, orderId, ...) が送られるのは仕様です。  
purchaseState:0 (purchased) の堎合には、orderId には最埌に成功した決
枈の Google 泚文番号が入っおいたす。


> たた、これはこちらで詊した結果なのですが、Subscriptionの堎合のみ、
> キャンセル及び払い戻しを行った堎合、PurchaseStatusの倉化はある
> が、プッシュ通知は飛ばないマヌケットアプリからSTATUS_CHANGEが送ら
> れおくるこずはないようなのです。ガむドラむンなどでは、PUSH通知を利
> 甚するるこずず曞かれおいるため、expiredやPurchasedは送られおくるず
> 思っおいたすが、そのあたりご経隓ありたすでしょうか


デベロッパヌが Checkout 管理画面から手動で決枈をキャンセルした堎合の
挙動に぀いおは、私のほうでもひき぀づき動䜜確認しおおりたす (情報が若
干混乱しおおりたす、すみたせん)。 私の方でも動䜜確認ができ次第、改め
おこちらの forum にも共有したいず思いたす。

- Ryosuke


2012/8/6 aki <akito...@gmail.com>
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/mDgWo4JHwOYJ にアクセスしおください。

このグルヌプに投皿するには、android-...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。

aki

unread,
Aug 8, 2012, 3:23:36 AM8/8/12
to android-...@googlegroups.com
Google 束内様

现かな説明ありがずうございたす。
曎新タむミングではPURCHASE_STATE_CHANGEDは送られおこないのですね。
曎新タむミングに再取埗しステヌタスおよび、賌入日を確認する手段をずる予定です。

たた、ご説明頂いたように、validUntilTimestampMsecが月日時に賌入であれば、月日時ずなるかず思うのですが、
APIで確認したずころ、validUntilTimestampMsecずinitiationTimestampMsecの差がちょどヶ月埌ではない堎合が
䜕床か高い確率で確認できたした。決枈タむミングやキャンセルなどが関係あるのでしょうか・・・

{
"kind": "androidpublisher#subscriptionPurchase",
"initiationTimestampMsec": "1343294251000",
"validUntilTimestampMsec": "1345979845752",
"autoRenewing": false
...
}

aki



2012幎8月6日月曜日 23時18分06秒 UTC+9 Ryosuke Matsuuchi:
2012/8/6 aki <akito...@gmail.com>
aki 様
2012/7/27 aki <akito...@gmail.com>
このグルヌプに投皿するには、android-sdk-japan...@googlegroups.com にメヌルを送信しおください。

このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。



--
- Ryosuke Matsuuchi | Developer Advocate, Android | Google


--
このメヌルは Google グルヌプのグルヌプ「Android-SDK-Japan」の登録者に送られおいたす。
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-sdk-japan/-/mDgWo4JHwOYJ にアクセスしおください。

このグルヌプに投皿するには、android-sdk-ja...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-sdk-japan+unsubscribe@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグルヌプにアクセスしおください。
Reply all
Reply to author
Forward
0 new messages