私はトランザクションキューオブザーバに来るトランザクションに含まれているtransactionReceipt
を見てIAPを実装するために廃止予定のpre-iOS 7以前の方法を使用しているアプリを持っています。それは素晴らしい仕事でした。オブザーバの新しい実装は、新しいトランザクションが報告されているかどうか(状態はSKPaymentTransactionStatePurchased
)を追跡し、キュー内に見つかったものがあれば(transactionReceipt
ではなく)を取得し、それをサーバに送信します。アプリレシートはいつ新しい取引を取得しますか?
今日まで、アップルから返品された復号化されたアプリの領収書で、新しいトランザクションが常に「in_app」フィールドにあることがわかりました。今日私はサブスクリプションをテストしていますが(私が知る限りでは動作していますが)、サブスクリプション以外の非消耗品を注文すると、そのトランザクションはではなく、が "in_app"アプリの領収書を注文するまで非購読、非消耗品。その時点で、以前に注文された製品が「in_app」配列に表示されますが、新しく注文された製品は表示されません。
の両方とも、以前に購入したアイテムと新たに購入したアイテムが「latest_receipt_info」アレイに存在します。私はちょうど "in_app"の代わりにその配列を使用するだろうが、私はサブスクリプションをテストするまで "latest_receipt_info"を見ていなかったので、常にそこにいるとは思わない。
質問:ステップがありませんか?トランザクションキューオブザーバでアプリレシートをリフレッシュする必要がありますか?もし私がそうした場合、Apple IDの資格情報がわかりにくい(注文して資格情報を入力しただけで、もう一度やり直さなくてもいい)ようにユーザーに促すのではないでしょうか?
私はあなたがIAPについて何か知っている唯一の人だと思います。 :-) – Craig