ブログBlog
アプリ内課金に悩まされてます
投稿日:2014年08月27日
布内です。
最近、アプリ内課金の処理に頭を悩まされています。
非消費型の課金の実装ですが、iOSだけで一週間以上かかってます・・・・
ネットで調べながらなんとか正常処理はできているのですが、異常処理が上手くいきません・・・
課金処理をシーケンス図で表すとこのようになります。
今回、課金アイテムは1個だけなので、プロダクトIDを引数に直接記入してるので、プロダクト情報の問い合わせ部分は少し違いますが、この部分では問題は起きてません。
問題は購入の処理です。
購入処理の開始を要求して、購入処理の結果を受け取るまでに、アプリを終了すると、おかしくなります。
『既にこのアイテムを購入されていますが、ダウンロードされていません。今すぐダウンロードするには「OK」をタップします。』
と表示されて、OKをタップしても失敗に終わるんですよ・・・
調べると、
[[SKPaymentQueue defaultQueue] finishTransaction:transaction]
でトランザクションを終了させてないので、二重購入の処理になってしまい、上記エラーが出るみたいですが・・・
[SKPaymentQueue defaultQueue].transactions.count
でトランザクションの数を調べてみると0なんですよね・・・
もっと調べないといけませんね・・・