Optional untuk field yang mungkin tidak ada, Stream untuk melakukan iterasi pada hasil, dan CompletableFuture untuk panggilan asinkron.
Instalasi
Maven
Tambahkan dependensi kepom.xml:
pom.xml
Gradle
Tambahkan dependency kebuild.gradle.kts Anda:
build.gradle.kts
SDK memerlukan Java 8 atau yang lebih baru, sehingga juga dapat berjalan di Java 11, 17, dan 21.
Memulai Cepat
Buat client, lalu buat checkout session:fromEnv() terhubung ke live mode kecuali DODO_PAYMENTS_BASE_URL atau dodopayments.baseUrl menyatakan sebaliknya. Untuk menggunakan test mode, lihat Test Mode. API key test mode hanya berfungsi dalam test mode.
Fitur Inti
Type Safety
Class request dan response bertipe untuk pemeriksaan saat compile time.
Shared Client
Buat satu client dan gunakan kembali di seluruh request: client tersebut menyimpan connection pool dan thread pool. Object request dan response bersifat immutable.
Builder Pattern
Setiap class request memiliki builder, dan
toBuilder() membuat salinan yang telah dimodifikasi.Async Support
client.async() mengembalikan client yang method-nya menghasilkan CompletableFuture.Konfigurasi
Environment Variable
fromEnv() membaca environment variable ini atau system property yang sesuai. System property memiliki prioritas lebih tinggi:
.env
DODO_PAYMENTS_API_KEY atau dodopayments.apiKey. Webhook signing secret berasal dari DODO_PAYMENTS_WEBHOOK_KEY atau dodopayments.webhookKey, sedangkan base URL berasal dari DODO_PAYMENTS_BASE_URL atau dodopayments.baseUrl. Buat satu client dan gunakan kembali, karena setiap client memiliki connection pool dan thread pool sendiri.
Untuk memverifikasi webhook, teruskan raw request body dan header ke client.webhooks().unwrap(UnwrapWebhookParams.builder().body(rawBody).headers(headers).build()), dengan headers sebagai com.dodopayments.api.core.http.Headers. Method ini memeriksa signature dengan webhook key Anda dan mengembalikan event yang telah di-parse, atau melempar DodoPaymentsWebhookException. Tanpa header, unwrap tidak memverifikasi signature. client.webhooks().unsafeUnwrap(rawBody) mem-parse body tanpa memverifikasinya, jadi gunakan hanya untuk testing. Lihat Webhooks.
Konfigurasi Manual
Atur setiap opsi pada builder:RequestOptions.builder().timeout(Duration.ofSeconds(30)).build() sebagai argumen kedua method. responseValidation(true) memeriksa sejak awal apakah seluruh response sesuai dengan tipe yang diharapkan. Tanpanya, SDK hanya melempar DodoPaymentsInvalidDataException saat Anda membaca property dengan tipe yang tidak sesuai.
Test Mode
Untuk menggunakan test mode (https://test.dodopayments.com), panggil testMode() pada builder:
Operasi Umum
Contoh dalam bagian ini menggunakanclient dari Quick Start.
Membuat Checkout Session
Buat checkout session, lalu arahkan customer ke checkout URL yang dikembalikan:checkoutUrl() mengembalikan Optional<String>. Setiap checkout URL hanya dapat digunakan sekali dan kedaluwarsa setelah 24 jam. Untuk setiap opsi session, lihat Checkout Sessions.
Mengelola Customer
Buat customer dengan alamat email, nama, dan metadata, lalu ambil kembali menggunakan ID:Menangani Subscription
Buat subscription dengan payment link, lalu kenakan biaya jika subscription tersebut bersifat on-demand.productPrice menggunakan unit mata uang terkecil, seperti cents untuk USD atau paise untuk INR. Untuk mengenakan biaya $25.00, teruskan 2500.Penagihan Berbasis Penggunaan
Mengonfigurasi Meter
Buat meter yang menghitung event, lalu tampilkan daftar meter Anda.autoPager() melakukan iterasi pada setiap meter dan mengambil halaman tambahan sesuai kebutuhan:
Memasukkan Usage Event
Kirim usage event untuk customer. Nilai metadata event adalah objectJsonValue:
eventId adalah idempotency key, jadi berikan nilai unik untuk setiap event. timestamp yang lebih dari 1 jam di masa lalu atau lebih dari 5 menit di masa mendatang akan ditolak.
Memasukkan Event Secara Batch
Kirim hingga 1.000 event dalam satu request. Contoh ini menggunakan import dari contoh sebelumnya:Penanganan Error
SDK melempar unchecked exception. Untuk status error, SDK melempar subclass dariDodoPaymentsServiceException, yang memiliki statusCode(), headers(), dan body(). Tangkap class khusus yang ingin Anda tangani sebelum base class:
UnexpectedStatusCodeException. Network failure melempar DodoPaymentsIoException, sedangkan response yang tidak dapat diinterpretasikan oleh SDK melempar DodoPaymentsInvalidDataException. Semua exception ini merupakan turunan dari DodoPaymentsException.
Operasi Asinkron
Panggilasync() pada client untuk mendapatkan client asinkron. Method-nya mengembalikan CompletableFuture:
DodoPaymentsOkHttpClientAsync.fromEnv().
Integrasi Spring Boot
Class Konfigurasi
Daftarkan satu client sebagai bean, lalu pilih environment dari sebuah property:Service Layer
Inject client ke dalam service:Resource
GitHub Repository
Source code, rilis, dan daftar method lengkap.
API Reference
Setiap endpoint, parameter, dan response.
Discord Community
Ajukan pertanyaan dan berdiskusi dengan developer lain.
Report Issues
Laporkan bug atau ajukan fitur.
Dukungan
Untuk mendapatkan bantuan terkait Java SDK:- Discord: Bergabunglah dengan community server untuk mendapatkan bantuan secara real-time.
- Email: Hubungi support@dodopayments.com.
- GitHub: Buat issue di repository.