TransWikia.com

Android サーバーでのレシート検証について

スタック・オーバーフロー Asked by Tom Marvolo Riddle on December 23, 2021

※サーバーサイドの話になります。
このAPIでサーバーサイドでサブスクリプションの検証を行っています。
https://www.googleapis.com/androidpublisher/v3/applications/

このAPIでpurchaseStateという値が返ってくるのですがこの値の示す意味がわかりません。
ドキュメントを読んでも一言しか書いておらず、検索しても情報が見つかりませんでした。

Googleのドキュメントでは↓のように説明されています。

purchaseState   integer The purchase state of the order. Possible values are:
- 0 Purchased
- 1 Canceled
- 2 Pending

私の疑問点は以下のとおりです。
間違っている点はありますか?

0[Purchased]
このステータスが返るとき、有効期限であるexpiryTimeMillisに従って
有効期限なら有償サービスを提供すべきと思っています。

1[Canceled]
このステータスは払い戻しを行ったときに返されると勝手に思っています。
ユーザーによる月額課金更新のキャンセルのことではなく。
そして私はこのステータスが返されるとき、自動的にexpiryTimeMillisが過去の日付になるのではないかと思っています。
このステータスが返るとき、有償サービスの提供を取りやめるべきと思っています。

2[Pending]
これは保護者などによる購入の保留状態のことでしょうか?
このステータスが返るとき、有償サービスの提供を行わないのが正しいと思っています。

One Answer

こんにちは、サブスクリプションに関するご質問のようなので、

Purchases.Subscriptions の値についてということでよろしいでしょうか?

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource-representations

ご質問いただいているパラメーターは Purchases.Products のもののようです。

https://developers.google.com/android-publisher/api-ref/purchases/products

これはIABによる通常のアイテムの購入に関するレシートを取得するものでサブスクリプションに適用はできません。Purchases.Subscriptions の値をとるときは以下のAPIを利用します。

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get

この点一旦ご確認いただき、手順も含めご説明願えれば回答しやすいかと思います。

Purchases.Products に関する説明となりますが、

2=Pending は購入が、決済などなんらかの利用で一時保留されていることを表します。たとえばクレジットカードの審査に時間がかかっているとか。銀行振込での決済を行っていて、振込確認を待っているなどの状態です。決済形式(国や地域によって異なります)によっては一週間程度かかるケースもあるようです。

Answered by Kouki.W on December 23, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP