〇概要
iOSとAndroidはともにサブスクリプション(定期購読)の機能が実装されており、購入時に決められた期限が与えられ、有効期限が切迫すると課金継続中なら有効期限が決められた期間分追加されます。
しかし、期限の伸び方の詳細はドキュメントに公開されておらず、よくわからない伸び方をするケースがあるので、実体験からわかった謎ルールをいくつか書いてみます。
謎はあまり解明されてないので、こういうケースもあるのかということで読んでください。
よくわからないことを書いているので、報告や指摘は大歓迎です。
サービスによっては起きたり起きなかったりするかもしれません。
今回は期間を一ヶ月に設定して、特に問題が起きやすい2/28,3/1当たりに注目しています。)
〇iOS
・新規購入時の延長
購入日時 + その月の日数 - (0時間 or 1時間)
**その月の日数**とは1/15に購入すれば1月が31日まであるので31日が延長される。
しかしロサンゼルスとの時差17時間が影響を与えていると思われ、考慮しなければならない。
そのため3/1の16:59までは2月という考え方になり、
例えば日本で3/1の16時に購入すると、2月判定になり28日が足され、3/29日の15時までの期限となるのでユーザーからのクレーム案件になるかもしれないので注意。
(サマータイム外はロサンゼルスと16時間の時差ですが、年中17時間で固定のようです)
**- (0時間 or 1時間)**については日によって全ユーザーがついたり、つかなかったり。その規則性はよくわからず。
ちなみに1/28 - 1/31に購入したものは3/1の有効期限になる。
・自動更新の延長
前回日時 + その月の日数 +- (2時間)
たまに**+-2時間**が付くが原因不明。
購入した日付を基準に戻ろうとする作用が起こる。
(28日に購入した例)2019-01-28 21:00:00 → 2019-02-28 21:00:00 → 2019-03-28 20:00:00
(31日に購入した例)2019-01-31 21:00:00 → 2019-02-28 21:00:00 → 2019-03-31 20:00:00
〇Android
・新規購入時
購入日時 + その月の日数 + 2時間
その月の日数は、他社ブログでは時差が影響して月初だとずれるとの報告あり。
- 2時間は多少前後することもある。
・自動更新時
前回日時 + その月の日数
**その月の日数**は11時ぐらいを基準に前日と判断されることもある。時差の影響かもしれない。
iOSと違い、29,30,31日に購入すると、更新時に28日に丸められてしまうので、更新数がその日に偏るので注意。
またユーザーとしては損をするケースとなる。
(28日に購入した例)2019-01-28 15:00:00 2019-02-28 15:00:00 2019-03-28 15:00:00
(31日に購入した例)2019-01-31 15:00:00 2019-02-28 15:00:00 2019-03-28 15:00:00
そして
2019-01-31 15:00:00 → 2019-03-01 15:00:00 → 2019-03-29 15:00:00
となるケースも多くみられ、ひと月に二回決済が行われるため、集計やユーザー対応に困ることもあり。
〇総評
iOSは17時間の時差を考慮しないといけないので悩みもの。
それ以外は大分素直。
Androidは謎ルールやバグが多く、期間が伸びたり縮んだりが頻繁に起きたりして、昔から悩まされている。(最近は大分マシになったけど・・・)
1月に2回支払いが行われるのは、運営、ユーザー共に月報や家計簿にズレがでるなど困るケースが出てくるので直してほしい。。。