Langsung ke konten utama

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.

Overview

Pengiriman Produk Digital adalah jenis hak File Digital. Anda unggah file Anda sekali ke hak File Digital, lampirkan hak tersebut ke produk, dan Dodo Payments mengantarkan tautan unduhan presigned ke setiap pelanggan yang membayar melalui email dan portal pelanggan. Hak mendukung:
  • Unggahan file yang di-hosted: menyimpan file di Dodo Payments dan melayani mereka melalui URL presigned jangka pendek.
  • Tautan unduhan eksternal: tautkan ke file yang di-hosting di Dropbox, Google Drive, S3, atau URL lainnya.
  • Instruksi unduhan: teks berbentuk bebas yang ditampilkan kepada pelanggan pada halaman pesanan mereka dan dalam email pengiriman.
Anda dapat mencampur ketiganya dalam satu hak.

Fitur Utama

File Upload

Unggah file (PDF, ZIP, gambar, video, dll.) hingga 100 MB. File dialirkan dan disimpan dengan efisien.

Multiple Files

Lampirkan sebanyak mungkin file yang Anda butuhkan ke satu hak.

External Links

Sediakan tautan unduhan eksternal (Dropbox, Google Drive, URL S3 yang ditandatangani) sebagai alternatif atau tambahan.

Presigned URLs

File yang di-hosting dilayani melalui URL presigned jangka pendek. Setiap URL unduhan habis masa berlakunya secara otomatis setelah sekitar 15 menit.

Mengatur Pengiriman Produk Digital

1

Open Entitlements

Buka Hak di dasbor Dodo Payments Anda dan klik + untuk membuat hak baru.
2

Choose Digital Files

Pilih Pengiriman Produk Digital sebagai integrasi.
3

Add files, links, and instructions

Konfigurasikan kombinasi apa pun dari:
  • File: unggah satu atau lebih file. Setiap unggahan mengembalikan file_id yang ditambahkan ke hak.
  • URL Eksternal: tautan HTTPS yang dapat diakses publik yang dikirimkan bersama file yang di-hosting.
  • Instruksi: teks berbentuk bebas yang ditampilkan kepada pelanggan (misalnya, “Unzip dan jalankan setup.sh”).
Digital Files entitlement with file upload, external URL, and instructions fields
4

Save the entitlement

Simpan. Hak sekarang tersedia untuk dilampirkan ke produk mana pun.

Melampirkan ke Produk

Buka produk, perluas Pengaturan Lanjutan → Hak & Kredit, dan pilih hak File Digital Anda. Hak diberikan pada setiap pembelian sukses atau langganan aktif yang terikat pada produk tersebut.
Product entitlements panel showing Digital Product Delivery selected

Cara Kerja Pengiriman

Pengiriman File Digital mengikuti standar siklus grant:
PeristiwaPerilaku
payment.succeeded (satu kali)Menerbitkan basis. Basis membawa URL unduhan presigned yang berlaku selama ~15 menit; pelanggan dapat menyegarkannya dengan membuka kembali tautan email atau halaman portal pelanggan.
subscription.activeMenerbitkan basis. File tetap dapat diakses selama langganan aktif.
subscription.renewedTidak ada aksi. Basis yang sama berlanjut; URL presigned baru dibuat pada setiap pengambilan.
subscription.on_hold / cancelled / expiredMencabut basis. URL presigned baru tidak lagi diterbitkan.
subscription.plan_changedMencabut basis lama; menerbitkan basis baru untuk hak rencana baru.
refund.succeeded (satu kali)Mencabut basis.
Pencabutan manualMencabut dengan revocation_reason: manual.
Pencabutan menghentikan Dodo Payments dari penerbitan URL unduhan baru, tetapi tidak membatalkan salinan yang sudah diunduh oleh pelanggan. Perlakukan unduhan file yang di-hosting sebagai “dikirim sekali dibaca.”

Pengalaman Pelanggan

Konfirmasi Pembelian

Setelah transaksi berhasil, pelanggan menerima email dengan tautan unduhan dan instruksi yang Anda konfigurasikan.
Purchase confirmation email showing download links for digital products

Akses Portal Pelanggan

Pelanggan dapat mengambil kembali tautan unduhan kapan saja dari Portal Pelanggan. Halaman portal menghasilkan URL presigned baru sesuai permintaan, sehingga pembelian yang sama terus berfungsi bahkan setelah tautan email kedaluwarsa.
Customer portal interface showing available digital products for download
Pelanggan dapat mengunduh file langsung dari email konfirmasi atau mengaksesnya kapan saja melalui portal mereka.

Mengelola File Secara Program

Unggah file ke hak

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',
});

Daftar basis dan selesaikan URL unduhan

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`);
  }
}

Hapus file dari hak

await client.entitlements.files.delete('ent_files_abc', 'df_a4f6c1de');

Pertimbangan Penting

  • URL presigned cepat habis masa berlakunya. URL unduhan yang dikembalikan dalam payload basis atau acara webhook berlaku selama ~15 menit. Jangan menyimpannya; ambil kembali ketika pelanggan perlu mengunduh lagi.
  • Memperbarui file hanya memengaruhi pembelian di masa mendatang. Mengganti atau menghapus file tidak mengubah unduhan yang telah diterbitkan secara retroaktif. Pelanggan di masa lalu masih dapat mengambil versi yang berlaku saat basis mereka dibuat.
  • Pengembalian dana tidak membatalkan salinan yang diunduh. Pelanggan yang sudah mengunduh file tetap memiliki salinannya. Untuk konten yang dapat dicabut (media dengan batasan lisensi, akses terbatas waktu), gabungkan File Digital dengan Kunci Lisensi dan validasi saat runtime.
  • Untuk konten sensitif, lebih baik gunakan URL eksternal dengan autentikasi sendiri. URL presigned Dodo Payments adalah jangka pendek tetapi tidak terautentikasi dalam jendela waktu mereka; siapa pun dengan URL dapat mengunduh dalam jendela tersebut. Konten yang di-hosting secara eksternal dan dibatasi akun memberikan jaminan yang lebih kuat.

Pengelolaan API

Create Entitlement

Buat hak File Digital dengan URL eksternal dan instruksi opsional.

Upload File

Unggah file (hingga 100 MB) dan tambahkan ke hak.

Delete File

Hapus file dari hak.

List Grants

Daftar basis dan baca URL unduhan yang diselesaikan.

Update Entitlement

Perbarui instruksi, URL eksternal, atau ganti file.

Revoke Grant

Cabut akses pelanggan secara manual.

Webhook

Pengiriman file digital dan pencabutan memicu empat acara webhook entitlement_grant.*. Untuk grant File Digital, payload mencakup objek digital_product_delivery dengan daftar file yang diselesaikan (URL presigned, nama file, ukuran), instructions opsional, dan external_url opsional.
"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
}

Pengiriman Produk Digital Lama

Produk yang dikonfigurasi dengan blok digital_product_delivery lama di produk itu sendiri telah secara otomatis dimigrasikan ke hak File Digital. File yang ada diunggah di bawah API file produk lama dipertahankan; mereka terus dapat diunduh dan muncul dalam payload basis yang ditandai dengan source: "legacy". Pembaruan di masa mendatang (menambahkan file, mengubah instruksi, mengganti URL eksternal) harus dilakukan dengan mengedit hak File Digital yang sudah dimigrasikan di bawah Hak.Bidang level produk lama (digital_product_delivery.external_url, digital_product_delivery.instructions) terus terisi pada respons produk untuk kompatibilitas mundur, tetapi hak adalah sumber kebenaran ke depan.

Praktik Terbaik

  • Perlakukan unduhan sebagai sekali jalan. Pelanggan akan berbagi atau kehilangan tautan, jadi rancang produk Anda dengan asumsi apa pun yang mereka unduh adalah milik mereka untuk disimpan.
  • Gunakan instruksi untuk mengatur ekspektasi. Untuk bundel multi-file, tambahkan baris instructions yang menjelaskan apa yang harus dipasang atau cara menggabungkan file.
  • Perhatikan batas 100 MB. Artefak yang lebih besar (dataset multi-GB, kursus video) harus di-hosting secara eksternal dan ditautkan melalui external_url alih-alih diunggah.
  • Gabungkan dengan Kunci Lisensi untuk akses yang dapat dicabut. Jika Anda perlu mencabut akses ke fitur produk setelah pengembalian dana, gabungkan hak File Digital dengan hak Kunci Lisensi dan validasi kunci saat runtime.
  • Uji alur penyegaran portal pelanggan. Konfirmasi pelanggan dapat kembali ke portal seminggu kemudian dan tetap mendapatkan tautan unduhan yang berfungsi. Ini adalah jalur pemulihan utama ketika tautan email habis masa berlakunya.
Last modified on May 14, 2026