Simpan metode pembayaran pelanggan tanpa melakukan pembayaran
Pelajari cara menyimpan metode pembayaran dan menagihnya nanti.
Checkout Sessions API dalam mode
setup memungkinkan Anda menyimpan detail pembayaran pelanggan tanpa pembayaran awal. Hal ini bermanfaat jika Anda ingin melakukan onboarding pelanggan sekarang, menyiapkan mereka untuk pembayaran, dan menagih mereka menggunakan Payment Intents API di masa depan saat mereka sedang offline.
Gunakan integrasi ini untuk menyiapkan pembayaran rutin atau untuk melakukan pembayaran satu kali dengan jumlah akhir yang ditentukan kemudian, sering kali setelah pelanggan menerima layanan Anda.
Transaksi menggunakan kartu
Transaksi dengan kartu, seperti pengumpulan detail kartu melalui Stripe Terminal, menggunakan proses berbeda untuk menyimpan metode pembayaran.
Kepatuhan
Anda bertanggung jawab atas kepatuhan Anda terhadap semua hukum, peraturan, dan aturan jaringan yang berlaku saat menyimpan detail pembayaran pelanggan. Persyaratan ini umumnya berlaku jika Anda ingin menyimpan metode pembayaran pelanggan untuk digunakan di masa mendatang, seperti menampilkan metode pembayaran pelanggan dalam alur checkout untuk pembelian di masa mendatang atau mengenakan saat mereka tidak aktif menggunakan situs web atau aplikasi Anda. Tambahkan ketentuan di situs web atau aplikasi Anda yang menyatakan rencana Anda menyimpan detail metode pembayaran dan mengizinkan pelanggan untuk ikut serta.
Ketika Anda menyimpan metode pembayaran, penggunaannya hanya bisa dilakukan untuk tujuan spesifik yang telah Anda cantumkan dalam ketentuan. Untuk menyimpan metode pembayaran ketika pelanggan sedang offline dan menjadikannya sebagai opsi untuk pembelian di masa depan, pastikan Anda benar-benar mendapatkan persetujuan pelanggan untuk penggunaan khusus ini. Misalnya, sertakan kotak centang “Simpan metode pembayaran saya untuk penggunaan di masa depan” guna mengumpulkan persetujuan.
Untuk menagih pelanggan saat mereka sedang offline, pastikan ketentuan Anda mencakup hal-hal berikut:
- Persetujuan pelanggan untuk melakukan pembayaran atau serangkaian pembayaran atas nama mereka untuk transaksi tertentu.
- Waktu yang diantisipasi dan frekuensi pembayaran (misalnya, jika charge dijadwalkan untuk angsuran berkala, pembayaran langganan, atau pengisian saldo tidak terjadwal).
- Cara Anda menentukan jumlah pembayaran.
- Kebijakan pembatalan Anda, jika metode pembayarannya untuk layanan langganan.
Pastikan Anda menyimpan catatan persetujuan tertulis pelanggan Anda terhadap ketentuan ini.
Catatan
Jika Anda perlu menggunakan konfirmasi sisi server manual atau integrasi Anda memerlukan penyajian metode pembayaran secara terpisah, lihat panduan alternatif .
Siapkan StripeSisi server
Pertama, buat akun Stripe atau masuk.
Gunakan pustaka resmi kami untuk mengakses API Stripe dari aplikasi Anda:
Buat PelangganSisi server
Untuk menyiapkan metode pembayaran bagi pembayaran mendatang, Anda harus melampirkannya ke Pelanggan. Buat objek Customer
bila pelanggan membuat akun pada bisnis Anda. Objek Customer
memungkinkan penggunaan kembali metode pembayaran dan pelacakan ke beberapa pembayaran sekaligus.
Gunakan mode penyiapanSisi server
Buat Sesi Checkout dengan mode=setup.
Melampirkan metode pembayaran ke PelangganSisi server
Jika Anda tidak membuat Sesi Checkout dengan pelanggan yang sudah ada, gunakan ID dari PaymentMethod ke melampirkan metode pembayaran ke pelanggan.
Jika tidak, metode pembayaran secara otomatis dilampirkan pada pelanggan yang Anda tentukan saat membuat Sesi Checkout.
Mengambil metode pembayaranSisi server
Setelah pelanggan berhasil menyelesaikan Sesi Checkout mereka, tangani webhook checkout.session.completed. Ambil objek Sesi dalam webhook, lalu lakukan hal-hal berikut:
- Dapatkan nilai kunci setup_intent, yaitu ID SetupIntent yang dibuat selama Sesi Checkout.
- Gunakan ID SetupIntent untuk mengambil objek SetupIntent. Objek yang dikembalikan berisi ID payment_method yang dapat Anda lampirkan ke pelanggan pada langkah berikutnya.
Pelajari lebih lanjut tentang menyiapkan webhook.
Charge metode pembayaran nantiSisi server
Setelah Anda melampirkan PaymentMethod ke pelanggan, Anda dapat melakukan pembayaran off-session menggunakan PaymentIntent:
- Atur pelanggan ke ID pelanggan dan payment_method ke ID metode pembayaran.
- Atur off_session ke
true
untuk menunjukkan bahwa pelanggan tidak berada di alur checkout Anda selama percobaan pembayaran dan tidak dapat memenuhi permintaan autentikasi yang dibuat oleh pihak lain, seperti penerbit kartu, bank, atau lembaga pembayaran lainnya. Jika, selama alur checkout, pihak lain meminta autentikasi, Stripe meminta pembebasan menggunakan informasi pelanggan dari transaksi on-session sebelumnya. Jika kondisi untuk pengecualian tidak terpenuhi, PaymentIntent mungkin menghasilkan kesalahan. - Tetapkan nilai properti confirm milik PaymentIntent ke
true
, yang menyebabkan konfirmasi segera terjadi saat Anda membuat PaymentIntent.
Jika percobaan pembayaran gagal, permintaan juga gagal dengan kode status HTTP 402, dan status PaymentIntent adalah requires_payment_method. Beritahu pelanggan agar kembali ke aplikasi Anda (misalnya, dengan mengirimkan email atau notifikasi dalam aplikasi) dan arahkan pelanggan ke sesi Checkout baru untuk memilih metode pembayaran lain.