私のアプリケーションでは、ユーザーは Apple ID ではなく、システム内の自分のアカウントにリンクされた購入を行うことができます。通常、iOS アプリは App Store のレシートをサーバーに送信し、サーバーはそれを検証します。レシート内の各トランザクションは特定のユーザー アカウントに属していることを知りたいです。これを行う 1 つの方法は、次のような追加のパラメーターをさらに受信に送信することです。
receipt: String, login: String, platform: String
レシートのデジタル署名の検証により、内部のデータが有効であり、ハッカーによって置き換えられていないことを確認します。パラメーター (ログインとプラットフォーム) がレシート内にある場合、検証は完全に安全であり、有効なデジタル署名はすべての購入が有効でアカウントに属していることを示します。そうしないと、1 つの領収書が異なるログインで送信され、複数のユーザーが支払いなしで購入できるようになります。これを防ぐには、たとえば、すべてのバンドル (領収書、ログイン、プラットフォーム) を追加で署名し、トランザクション ID とユーザー ID の一意のペアのチェックを追加することができます。私の質問は、レシートに追加のトランザクション パラメータを追加する方法、またはレシートとユーザー アカウントの購入間のリンクをアーカイブする別の一般的な方法はありますか?