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
    Produk dan harga
    API lama
      Charge
      Sumber
        Transisi ke API baru
        Sumber Kartu
        Sumber dan pelanggan
        ACH Direct Debit
        Platform Connect
        Praktik terbaik
        iOS
        Android
    Fase rilis
Build with LLMs
Gunakan Stripe tanpa kode
Siapkan Stripe
Buat akun
Dashboard Web
Dashboard Seluler
Migrasikan ke Stripe
Kelola risiko penipuan
Pahami penipuan
Perlindungan penipuan Radar
Kelola sengketa
Verifikasikan identitas
BerandaMulaiAbout the APIsOlder APIsSources

Transisi ke Payment Intents API dan Payment Methods API

Pelajari cara bertransisi dari Sources dan Token API ke Payment Methods API.

Salin halaman

Payment Methods API menggantikan Tokens API dan Sources API yang ada sebagai cara integrasi yang direkomendasikan untuk mengumpulkan serta menyimpan informasi pembayaran. Ini bekerja sama Payment Intents API guna melakukan pembayaran bagi berbagai metode pembayaran.

Kami berencana untuk mematikan dukungan Sources API untuk metode pembayaran lokal. Jika saat ini Anda menangani metode pembayaran lokal menggunakan Sources API, Anda harus memigrasikannya ke Payment Method API. Kami akan mengirimkan komunikasi email dengan informasi selengkapnya tentang akhir dukungan untuk Token dan Sources API.

Meski kami tidak berencana menonaktifkan dukungan metode pembayaran kartu, kami tetap merekomendasikan Anda memigrasikannya ke Payment Methods API dan Pembayaran Intents API. Untuk informasi selengkapnya tentang melakukan migrasi metode pembayaran kartu, lihat Memigrasikan ke Payment Intents API.

Lakukan migrasi metode pembayaran lokal dari Sources API ke Payment Intents API

Guna melakukan migrasi integrasi metode pembayaran lokal, perbarui server dan frontend untuk menggunakan PaymentIntents API. Terdapat tiga pilihan integrasi pada umumnya:

  • Alihkan ke Stripe Checkout untuk alur pembayaran Anda.
  • Gunakan Payment Element Stripe di halaman pembayaran Anda sendiri.
  • Bangun formulir Anda sendiri dan gunakan Stripe JS SDK untuk menyelesaikan pembayaran.

Jika menggunakan Stripe Checkout atau Payment Element, Anda dapat menambahkan dan mengelola sebagian besar metode pembayaran dari Dashboard Stripe tanpa melakukan perubahan kode.

Untuk informasi spesifik tentang pengintegrasian metode pembayaran lokal menggunakan Payment Methods API, lihat instruksi bagi metode pembayaran tersebut di dokumentasi metode pembayaran. Tabel berikut menyediakan perbandingan level tinggi dari tipe pembayaran yang berbeda.

Integrasi lamaStripe CheckoutPayment ElementFormulir tersendiri

Kompleksitas rendah

Kompleksitas sedang

Kompleksitas tinggi

Buat Sumber pada frontend atau pada serverBuat Sesi Checkout pada serverBuat PaymentIntent pada serverBuat PaymentIntent pada server
Otorisasikan pembayaran dengan memuat widget atau pengalihan ke pihak ketigaTidak dibutuhkanTeruskan client secret ke frontend dan gunakan Stripe JS SDK untuk menampilkan Payment Element guna menyelesaikan pembayaranTeruskan client secret ke frontend, gunakan formulir Anda sendiri untuk mengumpulkan detail dari pelanggan, dan selesaikan pembayaran sesuai dengan metode pembayaran
Konfirmasikan apakah sumber dapat di-charge dan kenakan charge SumberTidak dibutuhkanTidak dibutuhkanTidak dibutuhkan
Konfirmasikan Charge berhasil secara asinkron dengan webhook charge.succeededKonfirmasikan sesi Checkout yang berhasil dengan webhook payment_intent.succeededKonfirmasikan PaymentIntent yang berhasil dengan webhook payment_intent.succeededKonfirmasikan PaymentIntent yang berhasil dengan webhook payment_intent.succeeded

Peringatan

Objek PaymentIntent mewakili pembayaran dalam integrasi baru, dan akan membuat Charge bila Anda mengonfirmasikan pembayaran pada frontend. Jika sebelumnya menyimpan referensi ke Charge, Anda dapat terus melakukannya dengan mengambil Identifikasi Charge dari PaymentIntent setelah pelanggan menyelesaikan pembayaran. Namun, kami merekomendasikan agar Anda menyimpan Identifikasi PaymentIntent.

Memeriksa status pembayaran

Sebelumnya, integrasi Anda seharusnya telah memeriksa status Sumber maupun status Charge setelah setiap panggilan API. Anda tidak perlu lagi memeriksa dua status—Anda hanya perlu memeriksa status PaymentIntent atau Sesi Checkout setelah mengonfirmasikannya pada frontend.

payment_intent.statusArtiInstruksi khusus
succeededPembayaran berhasil.Tidak berlaku
requires_payment_methodPembayaran gagal.Tidak berlaku
requires_actionPelanggan belum menyelesaikan otorisasi pembayaran.Jika pelanggan tidak menyelesaikan pembayaran dalam waktu 48 jam, maka akan terjadi transisi PaymentIntent ke requires_payment_method dan Anda dapat mencoba ulang konfirmasi.

Selalu konfirmasikan status PaymentIntent dengan mengambilnya pada server atau mendengarkan webhook pada server Anda. Jangan hanya mengandalkan pengguna yang kembali ke return_url yang diberikan saat Anda mengonfirmasikan PaymentIntent.

Pengembalian dana

Anda dapat terus memanggil Refunds API dengan Charge yang dibuat oleh PaymentIntent. Identifikasi Charge dapat diakses pada parameter latest_charge.

Atau, Anda dapat memberikan Identifikasi PaymentIntent ke Refunds API dan bukan ke Charge.

Penanganan kesalahan

Sebelumnya, Anda harus menangani kesalahan pada Sources. Dengan PaymentsIntents, sebagai ganti memeriksa kesalahan pada Source, Anda memeriksa kesalahan pada PaymentIntent bila dibuat dan setelah pelanggan mengotorisasi pembayaran. Sebagian besar kesalahan pada PaymentIntent bertipe invalid_request_error, yang dikembalikan dalam permintaan tak valid.

Ketika memigrasikan integrasi, ingatlah bahwa kode kesalahan PaymentIntent dapat berbeda dari kode kesalahan yang bersangkutan untuk Sources.

Webhook

Jika sebelumnya mendengarkan kejadian Sumber, Anda mungkin perlu memperbarui integrasi untuk mendengarkan tipe kejadian baru. Tabel berikut ini menunjukkan sejumlah contoh.

Webhook lamaWebhook baru pada CheckoutWebhook baru pada PaymentsIntentsInstruksi khusus
source.chargeableTidak berlakuTidak berlaku
source.failedTidak berlakuTidak berlaku
source.canceledTidak berlakuTidak berlaku
charge.succeededcheckout.session.completedpayment_intent.succeededWebhook charge.succeeded juga dikirim, jadi Anda tidak perlu memperbarui integrasi untuk mendengarkan webhook baru.
charge.failedTidak berlaku - Pelanggan dapat mencoba ulang pembayaran pada Sesi Checkout yang sama sampai kedaluwarsa, saat di mana Anda menerima kejadian checkout.session.expired.payment_intent.payment_failedWebhook charge.failed juga dikirim, jadi Anda tidak perlu memperbarui integrasi untuk mendengarkan webhook baru.
charge.dispute.createdcharge.dispute.createdcharge.dispute.created

Bertransisi ke Payment Methods API

Perbedaan utama antara Payment Methods API dan Sources API adalah Sources menjelaskan status transaksi melalui properti status. Itu berarti transisi setiap objek Source harus dilakukan ke status dapat di-charge sebelum dapat Anda gunakan untuk pembayaran. Sedangkan PaymentMethod bersifat stateless, bergantung pada objek PaymentIntent guna mewakili status pembayaran.

Catatan

Tabel berikut ini bukan daftar metode pembayaran yang komprehensif. Jika Anda mengintegrasikan metode pembayaran lain dengan Sources API, lakukan juga migrasi ke Payment Methods API.

AlurIntegrasikan Metode Pembayaran dengan Payment Intents APITokens atau Sources dengan Charges API
KartuPembayaran kartuDidukung di Tokens; Tidak direkomendasikan di Sources
ACH Direct DebitDebit langsung rekening bank ASDidukung di Tokens Tidak direkomendasikan di Sources
Transfer Kredit ACHTransfer Bank USDTidak lagi digunakan
AlipayPembayaran AlipayTidak lagi digunakan
BancontactPembayaran BancontactTidak lagi digunakan
EPSPembayaran EPSTidak lagi digunakan
giropayPembayaran giropayTidak lagi digunakan
iDEALPembayaran iDEALTidak lagi digunakan
KlarnaPembayaran KlarnaTidak lagi digunakan
MultibancoPembayaran MultibancoBeta yang Tidak Lagi Digunakan
Przelewy24Pembayaran Przelewy24Tidak lagi digunakan
Transfer Kredit SEPATransfer Bank EURTidak lagi digunakan
Debit Langsung SEPADebit langsung Single Euro Payments AreaTidak lagi digunakan
SofortPembayaran SofortTidak lagi digunakan
WeChat PayPembayaran WeChat PayTidak lagi digunakan

Setelah memilih API yang akan diintegrasikan, gunakan panduan metode pembayaran untuk membantu menentukan jenis metode pembayaran yang tepat yang perlu Anda dukung.

Panduan ini mencakup penjelasan mendetail tentang setiap metode pembayaran dan menjelaskan perbedaan arus yang dihadapi pelanggan, bersama dengan wilayah geografis yang paling relevan. Anda dapat mengaktifkan metode pembayaran yang tersedia di Dashboard. Aktivasi umumnya instan dan tidak memerlukan kontrak tambahan.

Kompatibilitas dengan metode pembayaran yang dapat digunakan kembali terdahulu

Jika sebelumnya Anda memproses salah satu metode pembayaran yang dapat digunakan kembali berikut menggunakan Sources, migrasi sumber tersimpan yang ada tidak dilakukan secara otomatis.

  • Alipay
  • Debit Langsung Bacs
  • Debit Langsung SEPA

Guna mempertahankan metode pembayaran tersimpan dari pelanggan yang ada, Anda harus mengonversi sumber tersebut ke metode pembayaran menggunakan alat migrasi data di Dashboard Stripe. Untuk cara mengonversinya, lihat halaman dukungan.

Kompatibilitas dengan objek kartu terdahulu

Jika sebelumnya Anda mengumpulkan detail pembayaran kartu pelanggan dengan Stripe menggunakan kartu atau Sumber, Anda dapat langsung mulai menggunakan Payment Methods API tanpa memindahkan informasi pembayaran.

Instrumen pembayaran kompatibel yang disimpan ke Pelanggan dapat digunakan di API yang menerima objek PaymentMethod. Misalnya, Anda dapat menggunakan kartu yang disimpan sebagai PaymentMethod saat membuat PaymentIntent:

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_method_types[]"=card \ -d amount=1099 \ -d currency=usd \ -d customer=
{{CUSTOMER_ID}}
\ -d payment_method=
{{CARD_ID}}

Jangan lupa memberikan identifikasi pelanggan tempat menyimpan instrumen pembayaran Anda yang kompatibel saat melampirkan objek ke PaymentIntent.

Anda dapat mengambil semua instrumen pembayaran tersimpan yang kompatibel melalui Payment Methods API.

{ "id": "card_1EBXBSDuWL9wT9brGOaALeD2", "object": "card", "address_city": "San Francisco", "address_country": "US", "address_line1": "1234 Fake Street", "address_line1_check": null, "address_line2": null, "address_state": null, "address_zip": null,
{ "id": "card_1EBXBSDuWL9wT9brGOaALeD2", "object": "payment_method", "billing_details": { "address": { "city": "San Francisco", "country": "US", "line1": "1234 Fake Street", "line2": null, "postal_code": null,

Dengan kompatibilitas ini, tidak ada objek baru yang dibuat; Payment Methods API memberikan tampilan berbeda dari objek dasar yang sama. Misalnya, pembaruan pada instrumen pembayaran yang kompatibel melalui Payment Methods API akan terlihat melalui Sources API, dan sebaliknya.

Lihat juga

  • Panduan metode pembayaran
  • Pembayaran Connect
  • Referensi Payment Methods API
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