Siapkan pembayaran mendatang
Untuk mengumpulkan detail pembayaran pelanggan yang dapat Anda gunakan kembali nanti, gunakan mode penyiapan Checkout. Mode penyiapan menggunakan Setup Intents API untuk membuat Metode Pembayaran.
Lihat sampel lengkap kami yang berfungsi di GitHub.
Siapkan StripeSisi server
Pertama, Anda membutuhkan akun Stripe. Daftar sekarang.
Gunakan pustaka resmi kami untuk mengakses API Stripe dari aplikasi Anda:
Buat Sesi CheckoutSisi clientSisi server
Tambahkan tombol checkout ke situs web Anda yang memanggil endpoint sisi server untuk membuat Sesi Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
To create a setup mode Session, use the mode
parameter with a value of setup
when creating the Session. You can optionally specify the customer parameter to automatically attach the created payment method to an existing customer. Checkout uses Dynamic payment methods by default, which requires you to pass the currency parameter when using setup
mode.
Tambahkan variabel templat {CHECKOUT_SESSION_ID}
ke success_url
untuk mendapatkan akses ke ID Session setelah pelanggan Anda berhasil menyelesaikan Sesi Checkout. Setelah membuat Sesi Checkout, arahkan ulang pelanggan ke URL yang dikembalikan di respons.
Ambil Checkout SessionSisi server
Setelah pelanggan berhasil menyelesaikan Checkout Session mereka, Anda perlu mengambil objek Session. Ada dua cara untuk melakukannya:
- Secara asinkron: Tangani webhook
checkout.session.completed
, yang berisi objek Session. Pelajari selengkapnya tentang menyiapkan webhook. - Secara sinkron: Dapatkan Identifikasi Sesi dari
success_url
saat pengguna mengarahkan kembali ke situs Anda. Gunakan Identifikasi Sesi untuk mengambil objek Sesi.
Pilihan yang tepat bergantung pada toleransi Anda terhadap penurunan, karena pelanggan mungkin tidak selalu mencapai success_url
setelah pembayaran berhasil. Mungkin mereka menutup tab browser sebelum pengalihan terjadi. Menangani webhook akan mencegah integrasi Anda rentan terhadap bentuk penurunan ini.
Setelah Anda mengambil objek Session, dapatkan nilai kunci setup_intent
, yang merupakan identifikasi untuk SetupIntent yang dibuat selama Checkout Session. SetupIntent adalah objek yang digunakan untuk menyiapkan informasi rekening bank pelanggan untuk pembayaran mendatang.
Contoh payload checkout.session.completed
:
{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": "", "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }
Perhatikan identifikasi setup_intent
untuk langkah berikutnya.
Ambil SetupIntentSisi server
Dengan menggunakan identifikasi setup_intent
, ambil objek SetupIntent. Objek yang dikembalikan berisi ID payment_method
yang dapat Anda lampirkan ke pelanggan di langkah berikutnya.
Catatan
Jika Anda meminta informasi ini secara sinkron dari Stripe API (bukan menangani webhook), Anda dapat menggabungkan langkah sebelumnya dengan langkah ini dengan memperluas objek SetupIntent dalam permintaan ke endpoint /v1/checkout/session. Melakukan hal ini akan mencegah Anda dari keharusan membuat dua permintaan jaringan untuk mengakses identifikasi PaymentMethod yang baru dibuat.
Gunakan metode pembayaranSisi server
Jika Anda tidak membuat Checkout Session dengan pelanggan yang sudah ada, gunakan ID payment_method
untuk melampirkan PaymentMethod ke Pelanggan. Setelah Anda melampirkan PaymentMethod ke pelanggan, Anda dapat men-charge PaymentMethod menggunakan PaymentIntent.
Ungkapkan Stripe kepada pelanggan Anda
Stripe mengumpulkan informasi tentang interaksi pelanggan dengan Elements untuk memberikan layanan kepada Anda, mencegah penipuan, serta meningkatkan layanannya. Ini termasuk penggunaan cookie dan alamat IP guna mengidentifikasi Elements mana yang dilihat pelanggan selama satu sesi checkout. Anda bertanggung jawab untuk mengungkapkan serta memperoleh semua hak dan persetujuan yang diperlukan agar Stripe dapat menggunakan data dengan cara ini. Untuk informasi selengkapnya, kunjungi pusat privasi kami.