サブスクリプションステータスを取得すると(詳しくは、https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get をご覧ください。) APIは次のように応答します
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "purchaseTokenNoLongerValid",
"message": "The purchase token is no longer valid."
}
],
"code": 410,
"message": "The purchase token is no longer valid."
}
}
Android パブリッシャー API のコンテキストでは、ドキュメントでも Google 検索でも、「purchaseTokenNoLongerValid」または「購入トークンは無効になりました」という記述は見つかりませんでした。
このエラーの意味は推測できますが、正確に把握しておく方がよいでしょう。また、このエラーが発生した後、サブスクリプションをどうすればよいのでしょうか?
ベストアンサー1
最近、Google Play チームからこのメッセージを受け取りました。これは、HTTP status 410
60 日以上有効期限が切れているサブスクリプションに対するデフォルトの応答になります。
2018年5月21日より、購入.サブスクリプション.取得有効期限が 60 日以上経過したサブスクリプションの場合、応答にコンテンツがない HTTP ステータス 410 が返されます。有効期限がまだ切れていない、または有効期限が 60 日未満であるアクティブなサブスクリプションまたはキャンセルされたサブスクリプションについては、変更はありません。
詳細については、Android開発者向けウェブサイトをご覧ください。購入の確認方法。
そして実際、5 月 22 日に試してみたところ、ステータス 410 と次の本文の応答が返されました。
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "subscriptionPurchaseNoLongerAvailable",
"message": "The subscription purchase is no longer available for query because it has been expired for too long."
}
],
"code": 410,
"message": "The subscription purchase is no longer available for query because it has been expired for too long."
}
}