Terima transfer bank
Gunakan Payment Intents API untuk menerima pembayaran transfer bank.
Pertama kali Anda menerima pembayaran transfer bank dari pelanggan, Stripe membuat rekening bank virtual untuk mereka, yang kemudian dapat Anda bagikan dengan mereka secara langsung. Semua pembayaran transfer bank mendatang dari pelanggan ini akan dikirim ke rekening bank ini. Di sejumlah negara, Stripe juga memberi Anda nomor referensi transfer unik yang harus disertakan pelanggan pada setiap transfer agar mempermudah pencocokan transfer dengan pembayaran terutang. Sejumlah negara memiliki batas jumlah nomor rekening bank virtual yang dapat dibuat secara gratis.
Anda dapat menemukan gambaran umum tentang langkah-langkah umum saat menerima pembayaran transfer bank dalam diagram urutan berikut:
Menangani kurang bayar dan lebih bayar
Dengan pembayaran transfer bank, dimungkinkan pelanggan mengirimi Anda lebih atau kurang dari jumlah pembayaran yang diharapkan. Jika pelanggan mengirim terlalu sedikit, Stripe mendanai sebagian tujuan pembayaran terbuka. Invoice tidak akan didanai sebagian dan tetap terbuka sampai dana yang masuk menutupi jumlah invoice penuh.
Jika pelanggan mengirim lebih dari jumlah yang diharapkan, Stripe mencoba merekonsiliasi dana yang masuk dengan pembayaran terbuka serta menyimpan sisa jumlah kelebihannya di saldo kas pelanggan. Anda dapat menemukan detail selengkapnya tentang cara Stripe menangani rekonsiliasi di bagian rekonsiliasi dari dokumentasi kami.
Menangani beberapa invoice atau pembayaran terbuka
Anda mungkin memiliki beberapa invoice atau pembayaran terbuka yang dapat dibayar dengan transfer bank. Di penyiapan default, Stripe mencoba untuk secara otomatis merekonsiliasi transfer bank dengan menggunakan informasi seperti kode referensi transfer atau jumlah yang ditransfer.
Anda dapat menonaktifkan rekonsiliasi otomatis serta secara manual merekonsiliasi pembayaran dan invoice sendiri. Anda dapat mengesampingkan perilaku rekonsiliasi otomatis per pelanggan dengan mengatur mode rekonsiliasi ke manual.
Siapkan StripeSisi server
Pertama, Anda membutuhkan akun Stripe. Daftar sekarang.
Gunakan pustaka resmi kami untuk mendapatkan akses ke API Stripe dari aplikasi Anda:
Buat atau ambil PelangganSisi server
Anda harus mengaitkan objek Pelanggan untuk merekonsiliasi setiap pembayaran transfer bank. Jika sudah memiliki objek Pelanggan, Anda dapat melewati langkah ini. Jika tidak, buat objek Pelanggan baru.
Buat PaymentIntentSisi server
PaymentIntent adalah objek yang mewakili maksud Anda menagih pembayaran dari pelanggan dan melacak siklus proses pembayaran melalui setiap tahapannya. Buat PaymentIntent di server, dengan menetapkan jumlah dan mata uang yang ingin Anda gunakan untuk mengumpulkan. Anda juga harus mengisi parameter pelanggan dari permintaan pembuatan PaymentIntent. Transfer bank tidak tersedia di PaymentIntents tanpa pelanggan.
Kumpulkan detail pembayaranSisi client
Kumpulkan detail pembayaran pada client dengan Payment Element. Payment Element adalah komponen UI siap-rakit yang menyederhanakan pengumpulan detail pembayaran untuk berbagai metode pembayaran.
Payment Element berisi iframe yang mengirimkan informasi pembayaran dengan aman ke Stripe melalui koneksi HTTPS. Hindari penempatan Payment Element dalam iframe lain karena sejumlah metode pembayaran memerlukan pengalihan ke halaman lain untuk konfirmasi pembayaran.
Alamat halaman checkout harus dimulai dengan https://
bukan http://
agar integrasi Anda berfungsi. Anda dapat mencoba integrasi tanpa menggunakan HTTPS, tapi ingatlah untuk mengaktifkannya bila sudah siap menerima pembayaran live.
Payment Element menampilkan formulir dinamis yang memungkinkan pelanggan memilih metode pembayaran. Bagi masing-masing metode pembayaran, formulir akan secara otomatis meminta pelanggan untuk mengisi seluruh detail pembayaran yang diperlukan.
Sesuaikan penampilan
Sesuaikan Payment Element agar sejalan dengan desain situs Anda dengan meneruskan objek penampilan ke dalam options
ketika membuat penyedia Elements
.
Kumpulkan alamat
Secara default, Payment Element hanya mengumpulkan detail alamat tagihan yang diperlukan. Untuk mengumpulkan alamat tagihan lengkap pelanggan (misalnya, untuk menghitung pajak barang dan layanan digital) atau alamat pengiriman, gunakan Address Element.
Setelah konfirmasi, Stripe secara otomatis membuka modal untuk menampilkan detail transfer bank kepada pelanggan Anda.
Serahkan pembayaran ke StripeSisi client
Gunakan stripe.confirmPayment untuk menyelesaikan pembayaran menggunakan detail dari Payment Element. Berikan return_url ke fungsi ini untuk menunjukkan ke mana Stripe harus mengalihkan pengguna setelah menyelesaikan pembayaran. Pengguna Anda mungkin pertama kali diarahkan ulang ke situs perantara, seperti halaman otorisasi bank, sebelum diarahkan ulang ke return_
. Pembayaran kartu segera dialihkan ke return_
bila pembayaran berhasil.
Jika tidak ingin dialihkan untuk pembayaran kartu setelah pembayaran selesai, Anda dapat mengatur pengalihan ke if_
. Ini hanya mengalihkan pelanggan yang memproses pembayaran dengan metode pembayaran berbasis pengalihan.
Pastikan return_
sesuai dengan halaman pada situs web Anda yang menyediakan status pembayaran. Bila Stripe mengarahkan ulang pelanggan ke return_
, kami menyediakan parameter query URL berikut ini:
Parameter | Keterangan |
---|---|
payment_ | Identifier unik untuk PaymentIntent . |
payment_ | client secret dari objek PaymentIntent . |
Peringatan
Jika memiliki alat yang melacak sesi browser pelanggan, Anda mungkin perlu menambah domain stripe.
ke daftar pengecualian perujuk. Pengarahan ulang menyebabkan sejumlah alat membuat sesi baru, yang mencegah Anda melacak sesi yang telah selesai.
Gunakan salah satu parameter query untuk mengambil PaymentIntent. Periksa status PaymentIntent untuk memutuskan apa yang akan ditampilkan kepada pelanggan Anda. Anda juga dapat menambahkan parameter query Anda sendiri saat memberikan return_
, yang akan tetap ada selama proses pengalihan.
Konfirmasikan PaymentIntent berhasil
PaymentIntent tetap dalam status requires_
hingga dana masuk di rekening bank. Bila dana siap, status PaymentIntent akan diperbarui dari requires_
menjadi succeeded
.
Endpoint webhook Anda perlu disiapkan untuk mulai menerima kejadian payment_
. Saat PaymentIntent didanai sebagian, statusnya tetap dalam status requires_
.
Anda dapat menambahkan webhook dari Dashboard.
Atau, Anda dapat menggunakan Webhook Endpoints API untuk mulai menerima kejadian payment_intent.partially_funded.
Peringatan
Stripe CLI tidak mendukung pemicuan kejadian versi API beta, seperti payment_
.
Kejadian berikut dikirim selama alur pendanaan pembayaran bila PaymentIntent diperbarui.
Kejadian | Keterangan | Langkah berikutnya |
---|---|---|
payment_ | Dikirim selama konfirmasi bila saldo pelanggan tidak memiliki cukup dana untuk merekonsiliasi PaymentIntent, PaymentIntent berubah menjadi requires_ . | Perintahkan pelanggan Anda untuk mengirim transfer bank dengan amount_ . |
payment_ | Pelanggan mengirim transfer bank yang diterapkan pada PaymentIntent, tetapi tidak cukup untuk menyelesaikan pembayaran. Hal ini dapat terjadi karena pelanggan mentransfer jumlah yang tidak mencukupi (karena kesalahan kurang bayar atau biaya yang di-charge oleh bank mereka) atau karena saldo pelanggan yang tersisa telah diterapkan pada PaymentIntent ini. PaymentIntents yang didanai sebagian tidak tercermin di saldo akun Anda hingga pembayaran selesai. | Perintahkan pelanggan Anda untuk mengirim transfer bank yang lain dengan amount_ baru untuk menyelesaikan pembayaran. Jika ingin menyelesaikan pembayaran dengan dana yang diterapkan sebagian, Anda dapat memperbarui amount dan konfirmasikan PaymentIntent lagi. |
payment_ | Pembayaran pelanggan berhasil. | Penuhi barang atau layanan yang dibeli oleh pelanggan. |
Peringatan
Bila Anda mengubah jumlah PaymentIntent yang didanai sebagian, dana akan dikembalikan ke saldo pelanggan. Jika PaymentIntent lain terbuka, Stripe mendanainya secara otomatis. Jika pelanggan dikonfigurasikan untuk rekonsiliasi manual, Anda perlu menerapkan dana lagi.
Kami merekomendasikan penggunaan webhook untuk mengonfirmasikan bahwa charge telah berhasil dan memberi tahu pelanggan bahwa pembayaran telah selesai.
Kode sampel
Lihat pembayaran yang menunggu di Dashboard
Anda dapat melihat semua PaymentIntents transfer bank yang tertunda di Dashboard dengan menerapkan filter Menunggu pendanaan ke Status.
Coba integrasi Anda
Anda dapat mencoba integrasi dengan menyimulasikan transfer bank masuk menggunakan API, Dashboard atau versi beta Stripe CLI.
Menangani masalah ketersediaan sementara
Kode kesalahan berikut mengindikasikan masalah sementara pada ketersediaan metode pembayaran:
Kode | Keterangan | Penanganan |
---|---|---|
payment_ | Ada terlalu banyak permintaan yang dibuat dalam waktu berdekatan untuk metode pembayaran ini, yang memiliki batas lebih ketat daripada batas rasio API secara keseluruhan. | Kesalahan ini dapat bertahan untuk beberapa permintaan API saat banyak pelanggan Anda mencoba menggunakan metode pembayaran yang sama, seperti saat obral yang sedang berlangsung di situs web Anda. Dalam kasus ini, minta pelanggan Anda untuk memilih metode pembayaran lain. |
Peringatan
Jika Anda mengantisipasi penggunaan berat secara umum atau karena kejadian mendatang, hubungi kami segera setelah Anda mengetahuinya.