StoreKit覚書(その2)

購入処理の扱い。
購入だけでなく、非消費型だったり、継続型だったりすると、Restore(復元)するときのことも考えなくちゃいけない

基本は、Queueからの通知への対応

基本的には、以下のコードで購入処理が始まる。

コード

SKPaymentQueueをオブザーブしていると、新しいSKPaymentTransactionが来ると、通知が来る。

その通知に対応することが、アプリとしては、購入に対応することとなる。

通知の種類

通知が来ると、SKPaymentTransactionは、以下の状態のいずれかになっている。それぞれについて、処理していく必要がある。

  • .purchasing
  • .deferred
  • .purchased
  • .failed
  • .restored

.purchasing

購入途中の意味なので、することなし、スルーしてOK

.deferred

まだ処理途中なので、スルーしてOK。例えば、子供が購入して親の承認待ちみたいな状態。

.purchased

購入完了した意味なので、アプリとして何かしなければいけないはず。
きちんと処理してキューから取り除くために、SKPaymentQueue.defaults().finishTransaction(transaction)として、通知しなければいけない

.failed

なんらかの理由で失敗したということなので、通知することくらい?
.purchasedと同様に、処理終了したら、キューから取り除く必要があるので、SKPaymentQueue.defaults().finishTransaction(transaction)をコールしなければいけない。

.restored

復元の意味なので、復元処理をします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です