Cara kerja PaymentIntents
Pelajari cara kerja PaymentIntents dalam alur pembayaran.
Pembayaran yang melibatkan proses asinkron dapat rumit untuk dikelola. Misalnya, pengguna mungkin diharuskan untuk mengonfirmasi pembayaran menggunakan 3D Secure. Alur pembayaran asinkron sulit dikelola karena bergantung pada interaksi pelanggan yang terjadi di luar aplikasi Anda. PaymentIntents dan SetupIntents menyederhanakan pengelolaan dengan melacak status alur dalam state machine.
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.