今回は購入情報の復元(リストア)処理を行います。
※裏作業でSwiftUIにより、UI上部に”購入情報の復元(リストア)”のリンクを追加しました。課金処理の範囲外になるので「SwiftUI」の記述は詳しく行いませんが、第4回で紹介したAppleのサンプルコードが参考になると思います。
もちろんエラー処理は必要になりますが、購入情報の復元(リストア)処理を行うコードは、基本的に以下の1行だけです!
let result = try? await AppStore.sync()
課金アイテムの取得、課金処理、に続いて今回も1行だけです!
このコードが実行されると、ログインしているAppleIDに紐づいた課金情報が復元されるはずです。ログインしていない場合、ログインを促されると思います。
復元後、UIが更新されるはずですが、サンプルコードにはUIを更新するコードが一見、見当たりません。
おそらく、以下の
updateListenerTask = listenForTransactions()
このコードにより、トランザクションリスナーが開始されているため、課金関連処理が行われるとこのリスナーに検知されてUIが自動で変わる仕組みだと思います。(もし違ったら、詳しい方、コメント欄で教えてください!)
心配な場合は、リストア後にUIを更新するコードを念のため書いておくと良いかと思います。
以上、第1回から今回までで、課金に必要な処理は一通り説明しました。少し前までは、課金処理はとても複雑・面倒で、手を出しにくかった開発者の方も多かったかと思います。特に個人開発者の場合、できれば余分な実装に手間をかけたく無いですよね。
今回、StoreKit2で手軽に課金処理を実装可能になりましたので、いままで手を出せなかった方もどんどん手を出していただければと思います!
(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾