Cara kerja PaymentIntents dan SetupIntents
Pelajari cara kerja PaymentIntents dan SetupIntents dalam alur pembayaran.
Perbedaan utama antara Payment Intents API dan Setup Intents API adalah tujuannya:
- Payment Intents API: Digunakan untuk mengumpulkan pembayaran dan menagih pelanggan secara langsung. API ini membuat tagihan dan memproses transaksi untuk mengumpulkan dana.
- Setup Intents API: Digunakan untuk mengumpulkan dan menyimpan detail metode pembayaran untuk penggunaan di masa mendatang tanpa menimbulkan biaya. Menyiapkan kredensial pembayaran tanpa memproses pembayaran apa pun.
| API Payment Intent | Setup Intents API |
|---|---|
| Membuat tagihan langsung. | Tidak menimbulkan biaya. |
| Melacak siklus hidup pembayaran | Melacak kemajuan penyiapan metode pembayaran |
| Menggunakan 3D secure untuk mengautentikasi pelanggan pada transaksi yang berlaku. | Menggunakan 3D Secure untuk mengautentikasi metode pembayaran tanpa menagihnya, serta membuat mandat atau perjanjian untuk penagihan di masa depan. |
Pembayaran asinkron bisa jadi tantangan untuk dikelola karena dapat bergantung pada tindakan pelanggan yang terjadi di luar aplikasi Anda. Sebagai contoh, pengguna mungkin perlu mengonfirmasi pembayaran menggunakan 3D Secure.
Untuk menyederhanakan manajemen pembayaran, Stripe menggunakan mesin status yang memungkinkan Anda melacak status alur pembayaran. Untuk mempelajari status pada setiap API, pilih tab yang sesuai di bawah ini:
Bila PaymentIntent dibuat, statusnya requires_1 sampai metode pembayaran dilampirkan.
Kami merekomendasikan pembuatan PaymentIntent segera setelah mengetahui berapa banyak yang ingin Anda charge, agar Stripe dapat mencatat semua upaya pembayaran.
Setelah pelanggan memberikan informasi pembayaran mereka, PaymentIntent siap untuk dikonfirmasi.
Dalam sebagian besar integrasi, status ini dilewati karena informasi metode pembayaran diserahkan pada saat yang sama dengan pembayaran dikonfirmasi.
Jika pembayaran memerlukan tindakan tambahan, seperti mengautentikasi dengan 3D Secure, PaymentIntent memiliki status requires_1.
Setelah menangani tindakan yang diperlukan, PaymentIntent beralih ke processing untuk metode pembayaran asinkron, seperti debit bank. Tipe metode pembayaran ini dapat memakan waktu hingga beberapa hari untuk diproses. Metode pembayaran lainnya, seperti kartu, diproses lebih cepat dan tidak masuk ke status processing.
Jika Anda secara terpisah mengotorisasi dan menarik dana, PaymentIntent dapat berpindah ke requires_ sebagai gantinya. Dalam hal ini, mencoba menarik dana akan memindahkannya ke processing.
PaymentIntent dengan status berhasil berarti alur pembayaran yang dijalankannya telah selesai.
Dana sekarang ada di akun dan Anda dapat memenuhi pesanan dengan percaya diri. Jika perlu mengembalikan dana pelanggan, Anda dapat menggunakan Refunds API.
Jika upaya pembayaran gagal (misalnya karena penolakan), status PaymentIntent akan kembali ke requires_ agar pembayaran dapat dicoba ulang.
Anda dapat membatalkan PaymentIntent kapan saja sebelum berada dalam status processing2 atau succeeded. Membatalkannya akan membatalkan validasi PaymentIntent untuk upaya pembayaran mendatang, dan tidak dapat diurungkan. Jika ada dana yang ditahan, pembatalan akan melepaskannya.
PaymentIntents mungkin juga secara otomatis ditransisikan ke status canceled setelah terlalu sering dikonfirmasi.
1 Versi API sebelum 2019-02-11 menampilkan requires_ bukan requires_ dan requires_ sebagai ganti requires_.
2 Anda dapat membatalkan PaymentIntent dalam status processing bila Metode Pembayaran terkait adalah ACH, ACSS, AU BECS, BACS, NZ BECS, dan SEPA. Namun, ini mungkin gagal karena jangka waktu pembatalan yang terbatas dan bervariasi.