Cara kerja PaymentIntents dan SetupIntents
Pelajari cara kerja PaymentIntents dan SetupIntents dalam alur pembayaran.
Perbedaan utama antara API Payment Intents dan API Setup Intents 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 processing
2 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
jika Metode Pembayaran yang dikaitkan adalah Rekening Bank AS. Namun, ini mungkin gagal karena jangka waktu pembatalan yang terbatas dan bervariasi.