Overview
Digital Product Delivery は Digital Files entitlement タイプです。ファイルを一度 Digital Files entitlement にアップロードし、その entitlement を商品に紐付けます。Dodo Payments は、支払いを行ったすべての顧客に、メールと Customer Portal を通じて presigned download link を配信します。 Digital Files entitlement では、次の機能をサポートしています。- ホストされたファイルのアップロード: Dodo Payments がファイルを保存し、短期間有効な presigned URL を通じて提供します。
- 外部ダウンロードリンク: Dropbox、Google Drive、S3 など、別の場所でホストされているファイルを指す、entitlement ごとに 1 つの URL。
- ダウンロード手順: 注文ページと配信メールに表示される、自由形式のテキスト。
Key Features
File Upload
PDF、ZIP アーカイブ、画像、動画などのファイルを、1 ファイルあたり最大 500 MiB までアップロードできます。Dodo Payments は各アップロードをストレージにストリーミングします。
Multiple Files
1 つの entitlement に必要な数だけファイルを紐付けることができます。
External Links
ホストされたファイルの代わりに、またはホストされたファイルに加えて、Dropbox、Google Drive、署名付き S3 URL などの外部ダウンロードリンクを追加できます。
Presigned URLs
Dodo Payments は presigned URL を通じてホストされたファイルを提供します。各ダウンロード URL は生成から 15 分後に有効期限が切れます。
Digital Product Delivery の設定
1
Open Entitlements
dashboard で Entitlements に移動し、+ をクリックして entitlement を作成します。
2
Choose Digital Files
Digital Files を選択し、entitlement の Name を入力します。
3
Add Files, Links, and Instructions
次のフィールドを任意の組み合わせで設定します。
- Upload files: 1 つ以上のファイルをアップロードします。各アップロードは
file_idを返し、そのファイルを entitlement のdigital_file_idsに追加します。 - External Download Link:
http://またはhttps://で始まる、顧客がアクセスできる URL。Dodo Payments はホストされたファイルとともにこの URL を配信します。 - Instructions: 顧客に表示する自由形式のテキスト。例: “Unzip and run setup.sh.”

4
Save the Entitlement
Create Entitlement をクリックします。これで、任意の商品に entitlement を紐付けられるようになります。
Attach to Products
商品を開き、その Entitlements セクションに移動して、Digital Files entitlement を選択します。Dodo Payments は、その商品の購入が成功するたび、またはアクティブな subscription があるたびに entitlement を配信します。
Attaching the Digital Files entitlement to a product alongside other entitlements.
How Delivery Works
Digital Files の配信は、標準の grant lifecycle に従います。各イベントは Digital Files grant に次のような影響を与えます。Customer Experience
Purchase Confirmation
支払いが成功すると、顧客にはダウンロードリンクと、設定した手順を含むメールが届きます。
Customer Portal Access
grant がアクティブな間、顧客は Customer Portal から再度ダウンロードリンクを取得できます。portal は必要に応じて新しい presigned URL を生成するため、メール内のリンクの有効期限が切れた後も購入したコンテンツを利用できます。
顧客は確認メールからファイルをダウンロードするか、Customer Portal からいつでも開くことができます。
Manage Files Programmatically
Entitlement へのファイルのアップロード
ファイルをアップロードするには、multipart/form-data として file フィールドに送信します。オプションの filename フィールドは file パートより前に指定する必要があります。Dodo Payments は、その後に送信されたフィールドを無視するためです。filename を指定しない場合、Dodo Payments はアップロードされたファイルの名前を使用します。レスポンスには新しい file_id が返されます。
Grant の一覧表示とダウンロード URL の解決
各 Digital Files grant には、すべてのファイルについて新しい presigned URL を含むdigital_product_delivery オブジェクトがあります。URL を読み取るには、entitlement の grant を一覧表示します。
Entitlement からのファイルの削除
ファイルの紐付けを解除するには、そのfile_id と entitlement ID を渡します。
重要な考慮事項
- Presigned URL は短時間で有効期限が切れます。 grant payload と webhook event に含まれるダウンロード URL は 15 分間有効です。保存しないでください。顧客が再度ダウンロードする必要があるときに、新しい URL を取得してください。
- ファイルの更新は今後の購入にのみ影響します。 ファイルを置き換えたり削除したりしても、すでに発行されたダウンロードには影響しません。各 grant は作成時点の entitlement 設定を保持するため、過去の顧客は当時のバージョンを引き続き取得できます。
- Refund によってダウンロード済みのコピーが無効になることはありません。 すでにファイルをダウンロードした顧客は、そのコピーを保持します。ライセンスで制限されたメディアや期間限定アクセスなど、revoke 可能なコンテンツには、Digital Files と License Keys を組み合わせ、runtime で key を検証してください。
- 機密性の高いコンテンツには、独自の認証を備えた外部 URL を推奨します。 Dodo Payments の presigned URL は短期間のみ有効ですが、URL を知っている人は有効期限が切れるまでファイルをダウンロードできます。アカウントログインの背後に外部ホストされたコンテンツを配置すると、より細かく制御できます。
API Management
Create Entitlement
オプションの外部 URL と手順を含む Digital Files entitlement を作成します。
Upload File
最大 500 MiB のファイルをアップロードし、entitlement に紐付けます。
Delete File
entitlement からファイルの紐付けを解除します。
List Grants
grant を一覧表示し、解決済みのダウンロード URL を読み取ります。
Update Entitlement
手順または外部 URL を更新するか、ファイルを置き換えます。
Revoke Grant
顧客のアクセスを手動で revoke します。
Webhooks
Digital file の配信と revoke により、4 つのentitlement_grant.* webhook event が送信されます。Digital Files grant の場合、payload には解決済みのファイル一覧を含む digital_product_delivery オブジェクト、オプションの instructions、オプションの external_url が含まれます。各ファイルには presigned download_url、filename、content_type、バイト単位の file_size、および URL の有効期限までの秒数を表す expires_in が含まれます。
Legacy Digital Product Delivery
商品自体に以前の
digital_product_delivery ブロックが設定されている商品は、自動的に移行され、Digital Files entitlement になっています。従来の商品ファイル API を通じてアップロードされたファイルは保持されます。引き続きダウンロードでき、後からアップロードされたファイルとともに grant payload に表示されます。entitlement の digital_files 設定では、これらのファイルを legacy_file_ids リストで管理します。ファイルの追加、手順の変更、外部 URL の置き換えを行うには、Entitlements で移行された Digital Files entitlement を編集してください。後方互換性のため、商品レスポンスには従来の商品レベルのフィールド(digital_product_delivery.external_url、digital_product_delivery.instructions)が引き続き含まれますが、source of truth は entitlement です。ベストプラクティス
- ダウンロードは一度限りの配信として扱います。 顧客はリンクを共有したり紛失したりする可能性があるため、ダウンロードしたものは顧客が保持すると想定して商品を設計してください。
- 手順を使用して期待値を設定します。 複数ファイルのバンドルでは、何を最初にインストールするか、またはファイルをどのように組み合わせるかを説明する
instructions行を追加してください。 - 500 MiB の上限に注意します。 数 GB のデータセットや動画コースなど、より大きな成果物は外部でホストし、アップロードする代わりに
external_urlでリンクしてください。 - revoke 可能なアクセスには License Keys を組み合わせます。 Refund 後に商品内機能へのアクセスを revoke するには、Digital Files entitlement と License Key entitlement を組み合わせ、runtime で key を検証してください。
- Customer Portal の refresh flow をテストします。 顧客が 1 週間後に portal に戻っても、機能するダウンロードリンクを取得できることを確認してください。メールリンクの有効期限が切れた場合、portal が主な復旧手段になります。