> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# デジタル製品の配信

> 顧客が購入すると、ダウンロード可能なファイル、外部リンク、およびダウンロード手順を自動的に提供します。デジタル製品配信はデジタルファイルの権利タイプです。ファイルは、各付与時に署名されたダウンロードURLを使用して発行され、アクセスが取り消されると無効になります。

## 概要

デジタル製品配信は、**デジタルファイル**の権利タイプです。ファイルをデジタルファイルの権利に一度アップロードし、製品に権利を添付すると、Dodo Paymentsが署名付きダウンロードリンクを支払い済みの顧客にメールとカスタマーポータルを通じて提供します。

権利がサポートするのは以下の通りです：

* **ホストされたファイルのアップロード**：ファイルをDodo Paymentsに保存し、短期間の署名付きURLを介して提供します。
* **外部ダウンロードリンク**：Dropbox、Google Drive、S3、または任意のURLにホストされたファイルへのリンク。
* **ダウンロード手順**：注文ページと配信メールに表示される自由形式のテキスト。

これらの3つのすべてを1つの権利に組み合わせることができます。

## 主な特徴

ファイル（PDF、ZIP、画像、ビデオなど）を最大100MBアップロードします。ファイルは効率的にストリーミングおよび保存されます。

必要なだけ多くのファイルを1つの権利に添付します。

外部ダウンロードリンク（Dropbox、Google Drive、署名付きS3 URL）を代替または追加として提供します。

ホストされたファイルは短期間の署名付きURLを介して提供されます。各ダウンロードURLはおよそ15分後に自動的に期限切れになります。

***

## デジタル製品配信のセットアップ

Dodo Paymentsダッシュボードで**権利**に移動し、\*\*+\*\*をクリックして新しい権利を作成します。

**デジタル製品配信**を統合として選択します。

次のいずれかの組み合わせを設定します:

* **ファイル**：1つまたは複数のファイルをアップロードします。各アップロードは権利に追加される`file_id`を返します。
* **外部URL**：ホストされたファイルと一緒に配信される公開アクセス可能なHTTPSリンク。
* **手順**：顧客に表示される自由形式のテキスト（例：「解凍してsetup.shを実行する」）。

<img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/digital-files/create.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=33ad03277809d14585d247442c191462" alt="ファイルのアップロード、外部URL、および手順フィールドを備えたデジタルファイルの権利" style={{ maxHeight: '500px', width: 'auto' }} width="1669" height="989" data-path="images/entitlements/digital-files/create.png" />

保存します。権利は任意の製品に添付できるようになりました。

## 製品に添付

製品を開き、**詳細設定 → 権利 & クレジット**を展開し、デジタルファイルの権利を選択します。権利は、その製品に紐付けられたすべての成功購入またはアクティブなサブスクリプションに対して提供されます。

<img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=965ad78262791fa8dbb712b4fdf89538" alt="デジタル製品配信が選択された製品権利パネル" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1197" data-path="images/entitlements/attach-to-product.png" />

***

## 配信方法

デジタルファイルの配信は標準の[付与ライフサイクル](/features/entitlements/introduction#how-grants-work)に従います：

| イベント                                             | 動作                                                                                         |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `payment.succeeded` (一度きり)                       | 権利を発行します。権利には約15分間有効な署名付きダウンロードURLが含まれています。顧客はメールリンクを再開したり、カスタマーポータルページを再開することでそれらを更新できます。 |
| `subscription.active`                            | 権利を発行します。ファイルはサブスクリプションがアクティブな間アクセス可能です。                                                   |
| `subscription.renewed`                           | 対応なし。同じ権利が続き、新しい署名付きURLが取得時に発行されます。                                                        |
| `subscription.on_hold` / `cancelled` / `expired` | 権利を取り消します。新しい署名付きURLはもはや発行されません。                                                           |
| `subscription.plan_changed`                      | 古い権利を取り消し、新しいプランの権利に対して新しいものを発行します。                                                        |
| `refund.succeeded` (一度きり)                        | 権利を取り消します。                                                                                 |
| 手動取り消し                                           | `revocation_reason: manual`で取り消します。                                                        |

取り消しはDodo Paymentsが新しいダウンロードURLを発行するのを停止しますが、それは既に顧客がダウンロードしたコピーを無効にしません。ホストされたファイルのダウンロードを「読み込み完了時に配信済み」として取り扱います。

***

## 顧客体験

### 購入確認

取引が成功すると、顧客はダウンロードリンクおよび設定した手順が記載されたメールを受け取ります。

<img src="https://mintcdn.com/dodopayments/mOQO5ej_lx0yH9p-/images/digital-product-delivery/2.png?fit=max&auto=format&n=mOQO5ej_lx0yH9p-&q=85&s=54f5247f6d67fe5bb48736682995e23e" alt="デジタル製品のダウンロードリンクを示す購入確認メール" style={{ maxHeight: '500px', width: 'auto' }} width="1920" height="1080" data-path="images/digital-product-delivery/2.png" />

### カスタマーポータルアクセス

顧客はいつでも[カスタマーポータル](/features/customer-portal)からダウンロードリンクを再取得できます。ポータルページは要求に応じて新しい署名付きURLを生成するため、メールのリンクが期限切れになった後でも同じ購入が有効です。

<img src="https://mintcdn.com/dodopayments/mOQO5ej_lx0yH9p-/images/digital-product-delivery/3.png?fit=max&auto=format&n=mOQO5ej_lx0yH9p-&q=85&s=490c6755474c1f00a93f7adde7dabb63" alt="ダウンロード可能なデジタル製品を示すカスタマーポータルインターフェース" style={{ maxHeight: '500px', width: 'auto' }} width="1920" height="1080" data-path="images/digital-product-delivery/3.png" />

顧客は確認メールから直接ファイルをダウンロードしたり、ポータルを通じていつでもアクセスできます。

***

## プログラムによるファイル管理

### 権利にファイルをアップロードする

```typescript TypeScript theme={null} theme={null}
import DodoPayments from 'dodopayments';
import fs from 'node:fs';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
  environment: 'test_mode',
});

await client.entitlements.files.upload('ent_files_abc', {
  file: fs.createReadStream('./pro-bundle.zip'),
  filename: 'pro-bundle.zip',
});
```

```bash cURL theme={null} theme={null}
curl -X POST "https://test.dodopayments.com/entitlements/ent_files_abc/files" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@./pro-bundle.zip" \
  -F "filename=pro-bundle.zip"
```

CODE\_PLACEHOLDER\_278c8ff892f265e3e925879c7aa762a2\_END

### 権利を一覧表示しダウンロードURLを解決する

```typescript theme={null} theme={null}
const grants = await client.entitlements.grants.list('ent_files_abc', {
  customer_id: 'cus_abc123',
});

for (const grant of grants.items) {
  for (const file of grant.digital_product_delivery.files) {
    console.log(file.filename, file.download_url, `expires in ${file.expires_in}s`);
  }
}
```

### 権利からファイルを削除する

```typescript theme={null} theme={null}
await client.entitlements.files.delete('ent_files_abc', 'df_a4f6c1de');
```

***

## 重要な考慮事項

* **署名付きURLはすぐに期限切れになります。** 権利ペイロードまたはWebhookイベントで返されるダウンロードURLは約15分間有効です。それらを保存せず、顧客が再度ダウンロードする必要があるときに再取得してください。
* **ファイルの更新は将来の購入にのみ影響します。** ファイルを置き換えたり削除したりしても、すでに発行されているダウンロードに遡及して変更はありません。過去の顧客は、権利が作成された時点で現在だったバージョンを再取得できます。
* **払い戻しはダウンロードされたコピーを無効にしません。** すでにファイルをダウンロードした顧客はそのコピーを保持します。取り消し可能なコンテンツ（ライセンス制限メディア、期間限定アクセス）には、デジタルファイルを[ライセンスキー](/features/license-keys)と連携し、実行時に検証してください。
* **機密性の高いコンテンツには独自の認証を備えた外部URLを好ましく使用してください。** Dodo Paymentsの署名付きURLは短期間ですが、その間は認証されていないため、そのURLを持っている誰でもその期間にダウンロードできます。外部ホストされたアカウントゲートコンテンツはより強力な保証を提供します。

***

## API管理

オプションの外部URLと手順を使用してデジタルファイルの権利を作成します。

ファイルを（最大100MB）アップロードし、権利に追加します。

権利からファイルを削除します。

権利を一覧表示し解決済みのダウンロードURLを読み取ります。

手順、外部URLを更新したり、ファイルを置き換えたりします。

顧客のアクセスを手動で取り消します。

***

## Webhooks

デジタルファイルの配信と取り消しは4つの[`entitlement_grant.*` Webhookイベント](/developer-resources/webhooks/intents/entitlement-grant)を発火します。デジタルファイルの権利については、ペイロードに解決されたファイルリスト（署名付きURL、ファイル名、サイズ）、オプションの`instructions`、およびオプションの`external_url`オブジェクトが含まれています。

```json theme={null} theme={null}
"digital_product_delivery": {
  "files": [
    {
      "file_id": "df_a4f6c1de",
      "download_url": "https://files.dodopayments.com/.../pro-bundle.zip?Signature=...",
      "filename": "pro-bundle.zip",
      "content_type": "application/zip",
      "file_size": 18742390,
      "expires_in": 900
    }
  ],
  "instructions": "Unzip and run setup.sh from the project root.",
  "external_url": null
}
```

***

## レガシーデジタル製品配信

製品自体にある古い`digital_product_delivery`ブロックを使用して構成された製品は、**自動的に移行されて**デジタルファイルの権利になりました。レガシー製品ファイルAPIでアップロードされた既存のファイルは保存され、引き続きダウンロード可能で、権利ペイロードにタグ`source: "legacy"`として表示されます。今後の更新（ファイルの追加、手順の変更、外部URLの置き換え）は、移行されたデジタルファイルの権利を**権利**で編集することによって行う必要があります。
