Lewati ke konten
Buat akun
atau
Masuk
Logo Dokumen Stripe
/
Tanya AI
Buat akun
Masuk
Mulai
Pembayaran
Pendapatan
Platform dan situs belanja online
Manajemen uang
Sumber daya pengembang
Gambaran Umum
Tentang pembayaran Stripe
    Gambaran umum
    Mata uang
    Penolakan
    Payout
    Pembayaran rutin
    Autentikasi 3D Secure
    Kembalikan dana dan batalkan pembayaran
    Saldo dan waktu pelunasan
    Resi
    Tangani kejadian webhook
    Kesiapan SCA
    API lama
      Charge
        Migrasi ke API baru
      Sumber
      Perbandingan antara PaymentIntents dan Charges
Upgrade integrasi Anda
Analitik pembayaran
Pembayaran online
Gambaran umumTemukan contoh penggunaan AndaManaged Payments
Gunakan Payment Links
Buat halaman checkout
Bangun integrasi lanjutan
Bangun integrasi dalam aplikasi
Metode Pembayaran
Tambahkan metode pembayaran
Kelola metode pembayaran
Checkout lebih cepat dengan Link
Antarmuka pembayaran
Payment Links
Checkout
Web Elements
Elements dalam aplikasi
Skenario pembayaran
Tangani beberapa mata uang
Alur pembayaran custom
Akuisisi fleksibel
Orkestrasi
Pembayaran di tempat
Terminal
Di luar pembayaran
Dirikan perusahaan Anda
Kripto
Financial Connections
Climate
Pahami penipuan
Perlindungan penipuan Radar
Kelola sengketa
Verifikasikan identitas
BerandaPembayaranAbout Stripe paymentsOlder APIsCharges

Bermigrasi ke Payment Intents API

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

Selain itu, jika Anda menggunakan salah satu SDK kami, lakukan upgrade ke versi pustaka terbaru untuk menggunakan 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.
DidukungKartu uji ini mendukung autentikasi melalui 3D Secure 2, tetapi tidak mewajibkannya. Pembayaran menggunakan kartu ini tidak memerlukan autentikasi tambahan di sandbox kecuali aturan Sandbox Radar Anda meminta autentikasi.

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