Lewati ke konten
Buat akun
atau
Masuk
Logo Dokumen Stripe
/
Tanya AI
Buat akun
Masuk
Mulai
Pembayaran
Otomatisasi keuangan
Platform dan situs belanja online
Manajemen uang
Alat bantu pengembang
Mulai
Pembayaran
Otomatisasi keuangan
Mulai
Pembayaran
Otomatisasi keuangan
Platform dan situs belanja online
Manajemen uang
Gambaran UmumJelajahi semua produk
Mulai membangun
Mulai mengembangkan
Proyek sampel
Tentang API
    Tur API
    Payment Intents API
    Setup Intents API
    Metode Pembayaran
    API lama
      Charge
        Migrasi ke API baru
        Terima pembayaran kartu
        Simpan kartu
        Lakukan penahanan kartu
        Charge dengan Connect
      Sumber
    Fase rilis
Membangun dengan LLM
Gunakan Stripe tanpa kode
Siapkan Stripe
Buat akun
Produk dan harga
Dashboard Web
Dashboard Seluler
Migrasikan ke Stripe
Migrasikan data pelanggan
Migrasikan data pembayaran
Migrasikan langganan
Kelola risiko penipuan
Pahami penipuan
Perlindungan penipuan Radar
Kelola sengketa
Verifikasikan identitas
Dukungan terhadap peraturan
BerandaMulaiAbout the APIsOlder APIsCharges

Bermigrasi ke Payment Intents API

Salin halaman

Tertarik menggunakan Stripe Billing, Tax, diskon, pengiriman, atau konversi mata uang?

Kami sedang mengembangkan integrasi Payment Element yang mengelola langganan, pajak, diskon, pengiriman, dan konversi mata uang. Baca panduan Buat halaman checkout untuk mempelajari selengkapnya.

Pelajari cara memigrasikan kartu yang ada dan integrasi Charges API.

Memigrasi alur pembayaran Anda boleh jadi menakutkan. Amannya menggunakan Payment Intents API secara bertahap dan menggunakannya secara paralel dengan Charges API. Untuk tujuan ini, Anda dapat memecah migrasi menjadi langkah-langkah berikut:

  1. Perbarui versi API dan pustaka client Anda.
  2. Jika berlaku, migrasikan kode yang dibaca oleh properti Charge sehingga Anda memiliki jalur baca yang konsisten antara charge yang dibuat oleh Charges API dan charge yang dibuat oleh Payment Intents API. Hal ini memastikan integrasi sisi baca yang berfungsi baik untuk integrasi pembayaran Anda yang lama maupun yang baru.
  3. Migrasikan integrasi Charges API Anda yang sudah ada di Web, iOS, dan Android untuk menggunakan Payment Intents API.
  4. Migrasikan integrasi Anda yang menyimpan kartu pada objek Customer.
  5. Coba dengan kartu percobaan peraturan untuk memastikan integrasi yang di-upgrade menangani autentikasi dengan benar.

Perbarui versi API dan pustaka client Anda

Meski Payment Intents API berfungsi di semua versi API, kami merekomendasikan Anda melakukan upgrade ke versi API terbaru. Jika Anda memutuskan untuk menggunakan versi API yang lebih lama dari 2019-02-11, perhatikan dua perubahan berikut saat Anda melalui contoh kode:

  • requires_source telah diubah namanya menjadi requires_payment_method
  • requires_source_action telah diubah namanya menjadi requires_action

In addition, if you use one of our SDKs, upgrade to the latest version of the library to use the Payment Intents API.

Migrasikan alur pembayaran satu kali Anda

Integrasi yang dibangun dengan Stripe.js & Elements terdiri dari langkah-langkah berikut:

  1. Daftarkan maksud Anda untuk mengumpulkan pembayaran di sisi server
  2. Kumpulkan detail pembayaran di sisi client
  3. Prakarsai pembuatan pembayaran
  4. Penuhi pesanan pelanggan di sisi server

Langkah 1: Daftarkan maksud untuk mengumpulkan pembayaran di sisi server

Buat PaymentIntent di server Anda dan jadikan dapat diakses dari sisi client.

Sebelum
Setelah

Tidak mungkin sebelum

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Langkah 2: Kumpulkan detail pembayaran di sisi client

Gunakan fungsi confirmCardPayment, yang mengumpulkan informasi pembayaran dan mengirimkannya langsung ke Stripe.

Sebelum
Setelah
stripe.createToken( cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( INTENT_SECRET_FROM_STEP_1, { payment_method: {card: cardElement} } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Langkah 3: Prakarsai pembuatan pembayaran

Di integrasi yang ada, langkah terakhir adalah menggunakan informasi pembayaran yang dijadikan token untuk membuat charge di server Anda. Ini tidak lagi diperlukan, karena fungsi confirmCardPayment—yang dipanggil di langkah sebelumnya—akan memprakarsai pembuatan charge.

Sebelum
Setelah
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "amount"=1099 \ -d "currency"="usd"

Selesai di langkah sebelumnya

Langkah 4: Penuhi pesanan pelanggan

Dengan konfirmasi otomatis, charge dibuatkan untuk Anda secara asinkron berdasarkan tindakan pelanggan di sisi client, jadi Anda harus memantau webhook untuk menentukan kapan pembayaran berhasil diselesaikan. Untuk melakukan langkah-langkah seperti pemenuhan pesanan setelah pembayaran pelanggan berhasil, implementasikan dukungan untuk webhook dan pantau kejadian payment_intent.succeeded.

Sebelum
Setelah

Jika charge berhasil, penuhi pesanan.

Langganan ke webhook payment_intent.succeeded dan penuhi di handler webhook.

Karena Anda sekarang telah bermigrasi, gunakan kartu percobaan di bagian berikut untuk memverifikasi integrasi Anda yang di-upgrade untuk menangani autentikasi 3D Secure.

Migrasikan integrasi Anda yang menyimpan kartu pada objek Pelanggan

Integrasi Payment Intents API yang mengumpulkan informasi kartu dalam alur pembayaran terdiri dari langkah-langkah berikut:

  1. Daftarkan maksud Anda untuk mengumpulkan pembayaran di sisi server
  2. Kumpulkan detail pembayaran di sisi client
  3. Prakarsai pembuatan pembayaran
  4. Penuhi pesanan pelanggan di sisi server

Langkah 1: Daftarkan maksud untuk mengumpulkan pembayaran di sisi server

Buat PaymentIntent pada server. Atur setup_future_usage ke off_session jika Anda bermaksud men-charge pengguna saat mereka berada di luar aplikasi, atau on_session jika Anda berencana men-charge mereka dalam aplikasi. Jika Anda berencana menggunakan kartu untuk pembayaran di-dalam maupun di-luar sesi, gunakan off_session. Menyediakan parameter setup_future_usage bersama Identifikasi Pelanggan akan menyimpan PaymentMethod yang dihasilkan ke Pelanggan setelah PaymentIntent dikonfirmasi dan semua tindakan yang diperlukan dari pelanggan telah selesai. Berikutnya, buat PaymentIntent dapat diakses di sisi klien.

Sebelum
Setelah

Tidak mungkin sebelum

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "setup_future_usage"="off_session" \ -d "amount"=1099 \ -d "currency"="usd"

Langkah 2: Kumpulkan detail pembayaran di sisi client

Gunakan fungsi confirmCardPayment, yang mengumpulkan informasi pembayaran dan mengirimkannya langsung ke Stripe.

Sebelum
Setelah
stripe.createToken( // or stripe.createSource cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( '{{INTENT_SECRET_FROM_STEP_1}}', { payment_method: {card: cardElement}, } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Terakhir, lampirkan metode pembayaran (paymentIntent.payment_method) ke pelanggan.

Sebelum
Setelah
Command Line
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{TOKEN_OR_SOURCE}}"
Command Line
curl https://api.stripe.com/v1/payment_method/{{PAYMENT_METHOD_ID}}/attach \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}"

Langkah 3: Prakarsai pembuatan pembayaran

Di integrasi yang ada, langkah terakhir adalah menggunakan informasi pembayaran yang dijadikan token untuk membuat charge di server Anda. Ini tidak lagi diperlukan, karena fungsi confirmCardPayment—yang dipanggil di langkah sebelumnya—akan memprakarsai pembuatan charge.

Sebelum
Setelah
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="usd"

Selesai di langkah sebelumnya

Langkah 4: Penuhi pesanan pelanggan

Dengan konfirmasi otomatis, charge dibuatkan untuk Anda secara asinkron berdasarkan tindakan pelanggan di sisi client, jadi Anda harus memantau webhook untuk menentukan kapan pembayaran berhasil diselesaikan. Untuk melakukan langkah-langkah seperti pemenuhan pesanan setelah pembayaran pelanggan berhasil, implementasikan dukungan untuk webhook dan pantau kejadian payment_intent.succeeded.

Sebelum
Setelah

Jika charge berhasil, penuhi pesanan.

Langganan ke webhook payment_intent.succeeded dan penuhi di handler webhook.

Karena Anda sekarang telah bermigrasi, gunakan kartu percobaan di bagian berikut untuk memverifikasi integrasi Anda yang di-upgrade untuk menangani autentikasi 3D Secure.

Akses metode pembayaran tersimpan

Untuk menampilkan Cards, Sources, dan PaymentMethods pelanggan yang disimpan sebelumnya, cantumkan metode pembayaran bukannya membaca properti sources dari objek pelanggan. Hal ini diperlukan karena PaymentMethods baru yang ditambahkan ke pelanggan tidak akan diduplikasi di properti sources objek pelanggan.

Sebelum
Setelah
Command Line
customer.sources
Command Line
curl https://api.stripe.com/v1/payment_methods?customer={{CUSTOMER_ID}}&type=card \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

Mencoba integrasi

Sangatlah penting untuk mencoba integrasi secara menyeluruh guna memastikan Anda sudah benar dalam menangani kartu yang memerlukan autentikasi tambahan dan yang tidak. Gunakan nomor kartu ini di sandbox dengan tanggal kedaluwarsa di masa mendatang dan kode CVC tiga angka untuk memvalidasi integrasi Anda bila autentikasi diperlukan dan saat tidak diperlukan.

NomorAutentikasiKeterangan
Diperlukan pada persiapan atau transaksi pertamaKartu percobaan ini memerlukan autentikasi untuk pembayaran satu kali. Namun, jika Anda menyiapkan kartu ini menggunakan Setup Intents API dan menggunakan kartu tersimpan untuk pembayaran berikutnya, autentikasi lebih lanjut tidak dibutuhkan.
Harus diisiKartu percobaan ini memerlukan autentikasi pada semua transaksi.
Harus diisiKartu percobaan ini memerlukan autentikasi, tetapi pembayaran akan ditolak dengan kode kegagalan insufficient_funds setelah autentikasi berhasil.
DidukungThis test card supports authentication through 3D Secure 2, but does not require it. Payments using this card do not require additional authentication in a sandbox unless your sandbox Radar rules request authentication.

Gunakan kartu ini di aplikasi Anda atau demo pembayaran untuk melihat perilaku yang berbeda.

Lihat juga

  • Payment Intents di iOS
  • Payment Intents di Android
Apakah halaman ini membantu?
YaTidak
Butuh bantuan? Hubungi Tim CS.
Bergabunglah dengan program akses awal kami.
Lihat log perubahan kami.
Ada pertanyaan? Hubungi Bagian Penjualan.
LLM? Baca llms.txt.
Dijalankan oleh Markdoc