Pembayaran dengan kartu tanpa autentikasi bank
Membangun integrasi yang lebih sederhana dengan keterbatasan regional.
This integration supports businesses accepting only US and Canadian cards. It’s simpler up front, but does not scale to support a global customer base.
Bagaimana cara kerja integrasi ini?
Bagaimana jika dibandingkan dengan integrasi global?
Growing or global businesses should use Stripe’s global integration to support bank requests for two-factor authentication and allow customers to pay with more payment methods.
Buat formulir checkoutSisi client
Elements, bagian dari Stripe.js, menyediakan komponen UI drop-in untuk mengumpulkan informasi kartu dari pelanggan. Komponen tersebut di-hosting oleh Stripe dan ditempatkan di formulir pembayaran Anda sebagai iframe sehingga detail kartu pelanggan tidak pernah mencampuri kode Anda.
Siapkan StripeSisi server
Gunakan pustaka resmi untuk membuat permintaan ke API Stripe dari aplikasi Anda:
Lakukan pembayaranSisi server
Siapkan endpoint di server Anda untuk menerima permintaan dari klien.
Stripe menggunakan objek PaymentIntent untuk mewakili maksud Anda menagih pembayaran dari pelanggan, melacak upaya charge, dan perubahan status pembayaran di seluruh proses.
Selalu putuskan berapa banyak yang akan di-charge di server, lingkungan tepercaya, bukan di klien. Ini mencegah pelanggan yang berniat jahat untuk dapat memilih harga mereka sendiri.
Buat endpoint HTTP untuk menanggapi permintaan AJAX dari langkah 1. Di endpoint itu, Anda harus memutuskan berapa banyak yang akan di-charge ke pelanggan. Untuk melakukan pembayaran, buat PaymentIntent menggunakan identifikasi PaymentMethod dari langkah 1 dengan kode berikut:
Peringatan
If you set error_on_requires_action to true
when confirming a payment, Stripe automatically fails the payment if it requires two-factor authentication from the user.
Respons Payment Intents API
Bila Anda melakukan pembayaran dengan API, responsnya menyertakan status PaymentIntent. Jika berhasil, pembayaran akan berstatus succeeded
.
{ "id": "pi_0FdpcX589O8KAxCGR6tGNyWj", "object": "payment_intent", "amount": 1099, "charges": { "object": "list", "data": [ { "id": "ch_GA9w4aF29fYajT", "object": "charge", "amount": 1099, "refunded": false, "status": "succeeded", } ] }, "client_secret": "pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc", "currency": "usd", "last_payment_error": null, "status": "succeeded", }
Jika pembayaran ditolak, responsnya menyertakan kode kesalahan dan pesan kesalahan. Berikut merupakan contoh pembayaran yang gagal karena autentikasi dua faktor diperlukan untuk kartu.
{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "payment_intent": { "id": "pi_1G8JtxDpqHItWkFAnB32FhtI", "object": "payment_intent", "amount": 1099, "status": "requires_payment_method", "last_payment_error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "type": "card_error" }, }, "type": "card_error" } }
Tes integrasi
Ada beberapa kartu percobaan yang dapat Anda gunakan dalam mode percobaan untuk memastikan integrasi ini siap. Gunakan dengan CVC, kode pos, dan tanggal kedaluwarsa di masa mendatang.
Nomor | Keterangan |
---|---|
Berhasil dan segera memproses pembayaran. | |
Selalu gagalkan dengan kode penolakan insufficient_ . | |
Perlu autentikasi, yang di integrasi ini akan digagalkan dengan kode penolakan authentication_ . |
Lihat daftar lengkap kartu percobaan.
Upgrade integrasi Anda untuk menangani autentikasi kartu
Selamat! Anda telah menyelesaikan integrasi pembayaran untuk pembayaran dasar dengan kartu. Perhatikan bahwa integrasi ini menolak kartu yang memerlukan autentikasi selama pembayaran.
Jika Anda mulai melihat pembayaran di Dashboard yang tercantum sebagai Failed
, maka itu waktunya untuk melakukan upgrade integrasi Anda. Integrasi global Stripe menangani pembayaran ini, bukan menolaknya secara otomatis.