GooglePlay課金における定期購読状態取得APIにて以下のレスポンスが返ることがある。
{
"code" : 410,
"errors" : [ {
"domain" : "androidpublisher",
"message" : "The purchase token is no longer valid.",
"reason" : "purchaseTokenNoLongerValid"
} ],
"message" : "The purchase token is no longer valid."
}
Android Publisher APIのライブラリ(google-api-client1.23.0,google-api-services-androidpublisherv2-rev46-1.23.0)を使っているが、これを使うとGoogleJsonResponseExceptionがスローされる。
また公式ドキュメントにもこのエラーについては記述がなかった。
ユーザの状態
課金状態をコンソールで確認してみたところ、有効期限がきれたあともしばらく課金は「有効」となっている。
数日(日数はムラあり)後見ると「無効」に更新されていた。(これまで確認できたユーザすべて)
またこの状態のユーザについてGoogleに問い合わせてみたところ、Googleアカウントを削除していたということだった。
対処
GoogleJsonResponseExceptionでcatchし、e.getStatusCode == 410で判定し有料解除するようにした。
なにかいい方法があれば是非教えてください ![]()