Google Playアプリ内課金V3を使用して一定期間有効な商品を販売するアプリケーションを開発中です。ユーザーが購入した後、購入データをサーバーに送信し、成功した場合はすぐに消費します。その後、サーバーは、期間が終了するまで、この特定のユーザーの余分なサービスへのアクセスを許可します。注:私はアプリ内サブスクリプションを使用していません。Google Playアプリ内課金での購入の消化
支払いが行われないサンドボックスモードでテストユーザーとの購入をテストしています。それらのほとんどは成功しており、このフローは正常に動作します。しかし、時々、私の購入はすぐにGoogleによって取り消されます。私のGoogle Checkoutアカウントで注文履歴には、私はラインを参照してください。
「あなたの保護のために、Googleはこの注文をキャンセル取引が不正と見なさ ました。。」。
この場合でも、購入データには"purchaseState": 0
が届きました。これは成功を示しています。また、この製品を使用しようとすると、成功します(IInAppBillingService.consumePurchase(version, package, token)
を呼び出すと0が返されます)。在庫を後で照会すると、購入していない(したがって払い戻しもキャンセルもありません)、同じ商品を再び購入することができます。これは、通常のキャンセルされていない状態と同じ動作です。
- Googleは、テストサンドボックスの外で同じように注文をキャンセルすることはよくありますか?
- 正常に購入され、消費された商品は、開発者の支配外の理由でキャンセルされた(つまり、払い戻された)可能性がありますか?
- 既に消費されている商品のキャンセルについて知ることはできますか?
サーバー上で購入したアイテムを追跡している場合は、購入の注文IDも支払いトランザクションのIDです。アイテムがすでに消費されていても、何らかの検証を実装するのはあなた次第です。 – tomrozb