

Androidのアプリ内課金をBillingLibrary5.1で実装をしています。  
GooglePlayで購入後何らかの要因でレシートが自身のサーバーへ送られてこないことがあります。  
通信エラーになるようであれば復元処理が動作するようになっていますが、それも動作しないようです。

以下は購入フローです。

  1. アプリから商品の購入リクエストを送る
  2. 支払いを完了する
  3. アプリに戻り、Purchaseからレシート情報を受け取る
  4. 受け取ったレシート情報を自身のサーバーへ送る
  5. 自身のサーバーでレシートの検証
  6. 自身のサーバーでアイテムの付与
  7. アプリに戻り、Purchaseを消費する

復元の場合

  1. queryPurchaseAsyncからState.PURCHASEDのデータを取得
  2. 自身のサーバーへレシート情報を送る
  3. 自身のサーバーでレシートの検証
  4. 自身のサーバーでアイテムの付与
  5. アプリに戻り、Purchaseを消費する

現状購入フローの3と4のあたりで問題が起きるのではないかと疑っています。  
再現しないためログ等はありません。  
また、コードも申し訳ないですが公開できません。  
Googleに問い合わせてみましたがフォーラムで聞くよう勧められたため今に至ります。

ここで疑問なのですが、  
・Purchaseを消費せずレシートがロストすることがありえるのか  
・自動でPurchaseが消費されることがあるのか

考えられる可能性やフローの間違い等ありましたら教えていただけると幸いです。  
よろしくお願いします。


CC BY-SA 4.0
2023-08-10T06:30:24.767
95913
2023-08-10T06:30:24.767
59435
question
android アプリ内課金
Androidアプリ内課金　支払い後レシートがサーバーに送られてこないことがある