XCode 16.2 日本語化計画:
顧客があなたのアプリ内で製品を購入したことを示す情報。
あなたのアプリでサブスクリプション提供コードをサポート
(Supporting subscription offer codes in your app)
あなたのアプリで再獲得提供をサポート
(Supporting win-back offers in your app)
サンドボックス環境での再獲得提供のテスト
(Testing win-back offers in the sandbox environment)
あなたのアプリ外での購入のテスト
(Testing purchases made outside your app)
アプリ内購入用の StoreKit API の選択
(Choosing a StoreKit API for In-App Purchases)
transaction (取引) は、成功したアプリ内購入を表します。App Store は、顧客がアプリ内購入製品を購入したり、サブスクリプションを更新したりするたびに取引を生成します。現在の購入を表す取引ごとに、あなたのアプリは購入したコンテンツまたはサービスのロックを解除し、取引を終了します。
Transaction 型を使用して、以下の取引関連のタスクを実行します。
あなたのアプリは取引オブジェクトを作成しません。代わりに、StoreKit は、ユーザが初めてアプリを起動したときなど、最新の取引を自動的にあなたのアプリで利用できるようにします。
取引にアクセスするには、いくつかの方法があります。
取引情報の最も重要な用途は、顧客がどのアプリ内購入に有料アクセスしたかを判断し、あなたのアプリでコンテンツやサービスのロックを解除できるようにすることです。currentEntitlements API は、あなたのアプリ内の顧客のすべての有料コンテンツのロックを解除するために必要な情報を提供します。currentEntitlements を使用して、非消費型アプリ内購入や現在アクティブなサブスクリプションなど、顧客が現在権利を持つすべての製品の取引のリストを取得します。
App Store は、JWS 形式の取引情報を暗号で署名します。StoreKit は署名された情報を自動的に検証し、VerificationResult に包み込んで返します。VerificationResult が Transaction 値を包み込む場合、jwsRepresentation プロパティに生の JWS 文字列が提供されます。VerificationResult.verified(_:) を通じて取引を取得した場合、情報は検証に合格しています。VerificationResult.unverified(_:_:) を通じて取得した場合、情報は StoreKit の自動検証に合格していません。あなたのアプリは、Transaction プロパティ 内の取引情報にすぐにアクセスできます。
デバイス上であなた独自の検証を実行するには、検証結果の jwsRepresentation 文字列を使用し、提供されている便利なプロパティ headerData、payloadData、signatureData を使用します。制御とセキュリティを強化するには、jwsRepresentation をあなたのサーバに送信して検証します。検証を実装するには、App Store Server Library の使用を検討してください。このライブラリは、ライブラリがサポートする各言語で、verifyAndDecodeTransaction 関数と verifyAndDecodeRenewalInfo 関数を提供します。詳細については、App Store Server Library を使用して実装を簡素化する (Simplifying your implementation by using the App Store Server Library) を参照してください。
StoreKit が取引を検証済みとして返した場合、その取引はデバイスに対して有効です。デバイスに対してあなた独自の検証を実行する方法については、deviceVerification を参照してください。
JWS の詳細については、IETF RFC 7515 仕様 を参照してください。
顧客が行うすべてのアプリ内購入は、この取引 API と、アプリ内購入用のオリジナル API を使用したレシートで、以下のようにあなたのアプリに同じようにに提供されます。
  Transaction properties
ID、購入日と取り消し日、詳細、ステータス、オファーの詳細など、トランザクション (取引) のプロパティ。
カレンダーシステムとタイムゾーンで評価される単位 (年、月、日、時間、分など) で指定された日付または時刻。
struct Calendar
カレンダー単位と絶対時点の関係の定義。日付の計算と比較の機能を提供します。