私たちはiOSアプリでアプリの購入を喜んで処理しています。コードはしばらくの間使用されていたため、paymentQueue:updatedTransactions:
メソッドがStore Kitによって呼び出されたときに取得するトランザクションでは、現在非推奨のtransactionReceipt
プロパティが使用されています。私たちはその領収書を私たちのサーバーに送ります。私たちのサーバーは、Appleのサーバーへの投稿を通じてそれを検証し、サーバー上で何をする必要があるのかを確認し、私たちのアプリケーションに "成功"を報告します。よく働く。iOSアプリ内購入トランザクション受領書とアプリストア受取人番号
サブバンドベースの製品を追加したいので、メインバンドルのappStoreReceiptURL
プロパティを使用してIAPを再実装し、そこからアプリケーションレシートを読み込む必要があります。私には分からないことがいくつかあります。
paymentQueue:updatedTransactions:
が呼び出されたとき、私は同じSKPaymentTransactionStatePurchased
の状態を取得します。今のところ、Appleに提出すると、私はJSONを表示しています。私は戻ってきます。ステータスはゼロではないので、サンドボックスサーバーに送信して、それから戻ってくるものも表示します。問題は、私はこれを取得、両方の例である:
{"status":21002, "exception":"com.apple.jingle.mzfairplay.validators.DrmInvalidArgumentException"}
私はこれは私がデバッグビルドを実行している、というわけではないシムにいるという事実とは何かを持っている疑いがある - それは、実際のデバイス上で実行しています。それを回避するために、私はTestFlightを通してダウンロードできるようにApp Storeにビルドをアップロードしようとしましたが、私は自分のサンドボックスのApple IDを使用しているので、TestFlightはそれをインストールすることを拒否します。
私はこの「DrmInvalidArgumentException」を取得していますが、実際にデバイスをビルドして、サンドボックスのApple IDを使用して購入してデバッグするように正しく設定しています。
2番目の質問は私には困惑しています。私はそれを理解するので、私はまだpaymentQueue:updatedTransactions
を介して通知を受け取りますが、私はそこにアクセスするトランザクションを繰り返しますが、トランザクションで領収書を提出する代わりに、メインのURLからアプリ領収書を送信しますバンドル。これまでにすべてのIAP購入品が入っていて、新しいものや私が興味を持っているものを理解するために、すべてを繰り返していく必要があります。
フローが正しくないようです。トランザクションに基づいて通知を受けていますが、アプリの領収書に含まれるすべてのIAPトランザクションのダンプを確認しています。だから私はおそらく流れを正しく理解することはできません。
まだ私のサブスクリプションを追加していません - 私はすでに行っていることを処理できることを確認するために既存の製品でテストしています。私は、辞書に自動更新可能なサブスクリプションが含まれている場合にのみ、パスワードが必要であるという印象を受けています。 – Craig
プラス記号。 base64文字列をパーセントエンコードする必要があります。なぜ私の他の領収書がOKを通過しているのか分かりません。 RevenueCatももう一度見ていきます。 – Craig
ああ、これはURLの内容をどのようにエンコードするかです: 'NSString * fetchToken = [data base64EncodedStringWithOptions:0];'。 RevenueCatの実装[オープンソース](https://github.com/revenuecat/purchases-ios)は、私がどのように動作しているかを見たい場合に使用します。 –