# Migrasikan metode pembayaran ke Dashboard Aktifkan metode pembayaran Checkout yang berbeda melalui Dashboard. # Halaman yang di-hosting penuh > This is a Halaman yang di-hosting penuh for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/dashboard-payment-methods?payment-ui=stripe-hosted. Dengan mengubah integrasi untuk menarik preferensi metode pembayaran Anda dari Dashboard, Stripe menampilkan semua metode pembayaran yang kompatibel kepada pelanggan Anda saat memproses pembayaran tergantung pada mata uang yang dipilih atau pembatasan metode pembayaran seperti jumlah transaksi maksimum. Stripe juga menyajikan metode pembayaran yang paling relevan bagi setiap pelanggan berdasarkan lokasi mereka dan mata uang yang digunakan. Halaman checkout memprioritaskan tampilan metode pembayaran yang diketahui dapat meningkatkan konversi untuk lokasi pelanggan Anda, sementara metode pembayaran berprioritas lebih rendah disembunyikan di bawah menu perluasan. Pelanggan Anda melihat beberapa metode pembayaran yang populer untuk lokasi dan mata uang mereka, tetapi mereka tetap memiliki opsi untuk memilih metode pembayaran yang berbeda dari menu perluasan. ## Perbarui integrasi Anda Untuk integrasi Stripe Checkout yang ada yang menentukan `payment_method_types`, Anda harus menghapus parameter ini untuk memigrasikan preferensi metode pembayaran ke Dashboard. Setelah Anda menghapus parameter dari integrasi, beberapa metode pembayaran diaktifkan secara otomatis termasuk kartu dan dompet digital. Parameter `currency` membatasi metode pembayaran yang dilihat konsumen dalam Sesi Checkout. > Melakukan upgrade pada integrasi awalnya akan menonaktifkan metode pembayaran non-default untuk integrasi Anda, seperti halaman pembayaran bank. Jika Anda menambahkan metode pembayaran ke integrasi Checkout, Anda harus membuka halaman pengaturan metode pembayaran di Dashboard untuk mengaktifkannya kembali. #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') client.v1.checkout.sessions.create({ line_items: [ { price_data: { currency: 'eur', product_data: {name: 'T-shirt'}, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', success_url: 'https://example.com/success', }) ``` ## Lihat metode pembayaran yang tersedia di Dashboard Lihat [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) untuk melihat metode pembayaran yang saat ini Anda terima. Daftar ini mencakup metode pembayaran yang diaktifkan secara default, seperti kartu. Metode pembayaran ini biayanya sama atau kurang dari kartu dan diselesaikan dengan segera. ### Metode pembayaran Secara default, Stripe mengaktifkan kartu dan metode pembayaran umum lainnya. Anda dapat mengaktifkan atau menonaktifkan metode pembayaran individual di [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). Di Checkout, Stripe mengevaluasi mata uang dan batasan, lalu menyajikan metode pembayaran yang didukung secara dinamis kepada pelanggan. Untuk melihat cara metode pembayaran Anda ditampilkan kepada pelanggan, masukkan identifikasi transaksi atau tetapkan jumlah pesanan dan mata uang di Dashboard. Anda dapat mengaktifkan Apple Pay dan Google Pay di [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods). Secara default, Apple Pay diaktifkan dan Google Pay dinonaktifkan. Namun, dalam beberapa kasus Stripe memfilternya bahkan saat diaktifkan. Kami memfilter Google Pay jika Anda [mengaktifkan pajak otomatis](https://docs.stripe.com/tax/checkout.md) tanpa mengumpulkan alamat pengiriman. Halaman Checkout yang di-hosting Stripe tidak perlu perubahan integrasi untuk mengaktifkan Apple Pay atau Google Pay. Stripe menangani pembayaran ini dengan cara yang sama seperti pembayaran kartu lainnya. ## Tambahkan atau hapus metode pembayaran pada integrasi Anda Di halaman Dashboard pada pengaturan metode pembayaran, Anda dapat melihat metode pembayaran yang tersedia dan mengaktifkan metode pembayaran baru untuk integrasi Anda. Anda dapat mengaktifkan sejumlah metode pembayaran cukup dengan memilih **Aktifkan**. Namun, sejumlah metode pembayaran memerlukan langkah tambahan untuk mengaktifkannya. Untuk kasus tersebut, Anda akan melihat tombol yang bertuliskan **Siapkan** atau **Tinjau ketentuan**. Pelajari metode pembayaran mana yang tepat untuk bisnis Anda, lihat panduan [metode pembayaran kami](https://docs.stripe.com/payments/payment-methods/integration-options.md). ## (Direkomendasikan) Tangani metode pembayaran dengan notifikasi tertunda Bergantung pada tipe metode pembayaran yang Anda integrasikan, konfirmasi pembayaran mungkin tertunda 2–14 hari. Jika Anda menyiapkan *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) untuk [secara otomatis memenuhi](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) pesanan dengan integrasi Checkout, saat menambahkan metode pembayaran dengan notifikasi tertunda pertama, Anda mungkin perlu memperbarui kode. > Langkah ini hanya diperlukan jika Anda berencana menggunakan salah satu metode pembayaran berikut: [Debit Langsung Bacs](https://docs.stripe.com/payments/bacs-debit/accept-a-payment.md), [Transfer Bank](https://docs.stripe.com/payments/bank-transfers/accept-a-payment.md), [Boleto](https://docs.stripe.com/payments/boleto/accept-a-payment.md), [Debit praotorisasi Kanada](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md), [Konbini](https://docs.stripe.com/payments/konbini/accept-a-payment.md), [OXXO](https://docs.stripe.com/payments/oxxo/accept-a-payment.md), [Pay by Bank](https://docs.stripe.com/payments/pay-by-bank/accept-a-payment.md), [Debit Langsung SEPA](https://docs.stripe.com/payments/sepa-debit/accept-a-payment.md), atau [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment.md). Saat menerima pembayaran dengan metode pembayaran notifikasi tertunda, dana tidak langsung tersedia. Diperlukan beberapa hari untuk memproses dana sehingga Anda harus menunda *pemenuhan* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) pesanan hingga dana tersedia di akun Anda. Setelah pembayaran berhasil, status *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) pokok berubah dari `processing` menjadi `succeeded`. Anda perlu menangani kejadian Checkout berikut: | Nama Kejadian | Keterangan | Langkah berikutnya | | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Pelanggan telah berhasil mengotorisasi pembayaran debit dengan mengirimkan formulir yang disematkan. | Tunggu pembayaran berhasil atau gagal. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Pembayaran pelanggan berhasil. | Penuhi barang atau layanan yang dibeli. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Pembayaran ditolak, atau gagal karena beberapa alasan lainnya. | Hubungi pelanggan melalui email dan minta agar mereka memesan lagi. | Semua kejadian ini menyertakan objek [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions.md). Perbarui handler kejadian Anda untuk memenuhi pesanan: #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') # You can find your endpoint's secret in the output of the `stripe listen` # command you ran earlier endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end case event['type']when 'checkout.session.completed' checkout_session = event['data']['object'] # Save an order in your database, marked as 'awaiting payment' create_order(checkout_session) # Check if the order is already paid (for example, from a card payment) # # A delayed notification payment will have an `unpaid` status, as # you're still waiting for funds to be transferred from the customer's # account. if checkout_session.payment_status == 'paid' fulfill_order(checkout_session) end when 'checkout.session.async_payment_succeeded' checkout_session = event['data']['object'] # Fulfill the purchase... fulfill_order(checkout_session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(checkout_session) end status 200 end def fulfill_order(checkout_session) # TODO: fill in with your own logic puts "Fulfilling order for #{checkout_session.inspect}" enddef create_order(checkout_session) # TODO: fill in with your own logic puts "Creating order for #{checkout_session.inspect}" end def email_customer_about_failed_payment(checkout_session) # TODO: fill in with your own logic puts "Emailing customer about payment failure for: #{checkout_session.inspect}" end ``` ### Mencoba Pastikan `stripe listen` masih berjalan. Lewati Checkout sebagai pengguna percobaan, seperti di langkah sebelumnya. Handler kejadian Anda seharusnya menerima kejadian `checkout.session.completed`, dan Anda seharusnya berhasil menanganinya. Sekarang setelah Anda menyelesaikan langkah-langkah ini, Anda siap melanjutkan ke tahap produksi. ## Coba integrasi Anda #### Kartu | Nomor kartu | Skenario | Cara mencoba | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Pembayaran kartu berhasil dan tidak memerlukan autentikasi. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000002500003155 | Pembayaran kartu memerlukan *autentikasi* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase). | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000000000009995 | Kartu ini ditolak dengan kode penolakan seperti `insufficient_funds`. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 6205500000000000004 | Kartu UnionPay memiliki panjang variabel 13–19 angka. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | #### Dompet | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Alipay | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi segera](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | #### Pengarahan ulang bank | Metode pembayaran | Skenario | Cara mencoba | | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung BECS | Pelanggan Anda berhasil membayar dengan Debit Langsung BECS. | Isi formulir menggunakan nomor akun `900123456` dan BSB `000000`. PaymentIntent yang telah dikonfirmasi awalnya akan berstatus `processing`, kemudian berubah menjadi status `succeeded` setelah 3 menit. | | Debit Langsung BECS | Pembayaran pelanggan Anda gagal dengan kode kesalahan `account_closed`. | Isi formulir menggunakan nomor akun `111111113` dan BSB `000000`. | | Bancontact, EPS, iDEAL, dan Przelewy24 | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi segera dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi tertunda](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi tertunda dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | BLIK | Pembayaran BLIK gagal dalam berbagai cara — kegagalan langsung (misalnya, kode kedaluwarsa atau tidak valid), kesalahan tertunda (bank menolak) atau waktu habis (pelanggan tidak merespons tepat waktu). | Gunakan pola email untuk [menyimulasikan berbagai kegagalan.](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Debit bank | Metode pembayaran | Skenario | Cara mencoba | | ------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung SEPA | Pelanggan Anda berhasil membayar dengan Debit Langsung SEPA. | Isilah formulir menggunakan nomor akun `AT321904300235473204`. Transisi PaymentIntent yang telah dikonfirmasi awalnya menjadi sedang diproses, kemudian akan berubah menjadi status berhasil setelah tiga menit kemudian. | | Debit Langsung SEPA | Transisi status maksud pembayaran pelanggan dari `processing` menjadi `requires_payment_method`. | Isilah formulir menggunakan nomor akun `AT861904300235473202`. | #### Voucher | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | Boleto, OXXO | Pelanggan Anda membayar dengan voucher OXXO atau Boleto. | Pilih Boleto atau OXXO sebagai metode pembayaran dan serahkan pembayaran. Tutup dialog setelah muncul. | Lihat [Pengujian](https://docs.stripe.com/testing.md) untuk mendapatkan informasi tambahan untuk menguji integrasi Anda. # Halaman tersemat penuh > This is a Halaman tersemat penuh for when payment-ui is embedded-page. View the full page at https://docs.stripe.com/payments/dashboard-payment-methods?payment-ui=embedded-page. Dengan mengubah integrasi untuk menarik preferensi metode pembayaran Anda dari Dashboard, Stripe menampilkan semua metode pembayaran yang kompatibel kepada pelanggan Anda saat memproses pembayaran tergantung pada mata uang yang dipilih atau pembatasan metode pembayaran seperti jumlah transaksi maksimum. Stripe juga menyajikan metode pembayaran yang paling relevan bagi setiap pelanggan berdasarkan lokasi mereka dan mata uang yang digunakan. Halaman checkout memprioritaskan tampilan metode pembayaran yang diketahui dapat meningkatkan konversi untuk lokasi pelanggan Anda, sementara metode pembayaran berprioritas lebih rendah disembunyikan di bawah menu perluasan. Pelanggan Anda melihat beberapa metode pembayaran yang populer untuk lokasi dan mata uang mereka, tetapi mereka tetap memiliki opsi untuk memilih metode pembayaran yang berbeda dari menu perluasan. ## Perbarui integrasi Anda Untuk integrasi Stripe Checkout yang ada yang menentukan `payment_method_types`, Anda harus menghapus parameter ini untuk memigrasikan preferensi metode pembayaran ke Dashboard. Setelah Anda menghapus parameter dari integrasi, beberapa metode pembayaran diaktifkan secara otomatis termasuk kartu dan dompet digital. Parameter `currency` membatasi metode pembayaran yang dilihat konsumen dalam Sesi Checkout. > Melakukan upgrade pada integrasi awalnya akan menonaktifkan metode pembayaran non-default untuk integrasi Anda, seperti halaman pembayaran bank. Jika Anda menambahkan metode pembayaran ke integrasi Checkout, Anda harus membuka halaman pengaturan metode pembayaran di Dashboard untuk mengaktifkannya kembali. #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') client.v1.checkout.sessions.create({ line_items: [ { price_data: { currency: 'eur', product_data: {name: 'T-shirt'}, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', return_url: 'https://example.com/return', ui_mode: 'embedded_page', }) ``` ## Lihat metode pembayaran yang tersedia di Dashboard Lihat [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) untuk melihat metode pembayaran yang saat ini Anda terima. Daftar ini mencakup metode pembayaran yang diaktifkan secara default, seperti kartu. Metode pembayaran ini biayanya sama atau kurang dari kartu dan diselesaikan dengan segera. ### Metode pembayaran Secara default, Stripe mengaktifkan kartu dan metode pembayaran umum lainnya. Anda dapat mengaktifkan atau menonaktifkan metode pembayaran individual di [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). Di Checkout, Stripe mengevaluasi mata uang dan batasan, lalu menyajikan metode pembayaran yang didukung secara dinamis kepada pelanggan. Untuk melihat cara metode pembayaran Anda ditampilkan kepada pelanggan, masukkan identifikasi transaksi atau tetapkan jumlah pesanan dan mata uang di Dashboard. Anda dapat mengaktifkan Apple Pay dan Google Pay di [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods). Secara default, Apple Pay diaktifkan dan Google Pay dinonaktifkan. Namun, dalam beberapa kasus Stripe memfilternya bahkan saat diaktifkan. Kami memfilter Google Pay jika Anda [mengaktifkan pajak otomatis](https://docs.stripe.com/tax/checkout.md) tanpa mengumpulkan alamat pengiriman. Halaman Checkout yang di-hosting Stripe tidak perlu perubahan integrasi untuk mengaktifkan Apple Pay atau Google Pay. Stripe menangani pembayaran ini dengan cara yang sama seperti pembayaran kartu lainnya. ## Tambahkan atau hapus metode pembayaran pada integrasi Anda Di halaman Dashboard pada pengaturan metode pembayaran, Anda dapat melihat metode pembayaran yang tersedia dan mengaktifkan metode pembayaran baru untuk integrasi Anda. Anda dapat mengaktifkan sejumlah metode pembayaran cukup dengan memilih **Aktifkan**. Namun, sejumlah metode pembayaran memerlukan langkah tambahan untuk mengaktifkannya. Untuk kasus tersebut, Anda akan melihat tombol yang bertuliskan **Siapkan** atau **Tinjau ketentuan**. Pelajari metode pembayaran mana yang tepat untuk bisnis Anda, lihat panduan [metode pembayaran kami](https://docs.stripe.com/payments/payment-methods/integration-options.md). ## (Direkomendasikan) Tangani metode pembayaran dengan notifikasi tertunda Bergantung pada tipe metode pembayaran yang Anda integrasikan, konfirmasi pembayaran mungkin tertunda 2–14 hari. Jika Anda menyiapkan *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) untuk [secara otomatis memenuhi](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) pesanan dengan integrasi Checkout, saat menambahkan metode pembayaran dengan notifikasi tertunda pertama, Anda mungkin perlu memperbarui kode. > Langkah ini hanya diperlukan jika Anda berencana menggunakan salah satu metode pembayaran berikut: [Debit Langsung Bacs](https://docs.stripe.com/payments/bacs-debit/accept-a-payment.md), [Transfer Bank](https://docs.stripe.com/payments/bank-transfers/accept-a-payment.md), [Boleto](https://docs.stripe.com/payments/boleto/accept-a-payment.md), [Debit praotorisasi Kanada](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md), [Konbini](https://docs.stripe.com/payments/konbini/accept-a-payment.md), [OXXO](https://docs.stripe.com/payments/oxxo/accept-a-payment.md), [Pay by Bank](https://docs.stripe.com/payments/pay-by-bank/accept-a-payment.md), [Debit Langsung SEPA](https://docs.stripe.com/payments/sepa-debit/accept-a-payment.md), atau [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment.md). Saat menerima pembayaran dengan metode pembayaran notifikasi tertunda, dana tidak langsung tersedia. Diperlukan beberapa hari untuk memproses dana sehingga Anda harus menunda *pemenuhan* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) pesanan hingga dana tersedia di akun Anda. Setelah pembayaran berhasil, status *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) pokok berubah dari `processing` menjadi `succeeded`. Anda perlu menangani kejadian Checkout berikut: | Nama Kejadian | Keterangan | Langkah berikutnya | | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Pelanggan telah berhasil mengotorisasi pembayaran debit dengan mengirimkan formulir yang disematkan. | Tunggu pembayaran berhasil atau gagal. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Pembayaran pelanggan berhasil. | Penuhi barang atau layanan yang dibeli. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Pembayaran ditolak, atau gagal karena beberapa alasan lainnya. | Hubungi pelanggan melalui email dan minta agar mereka memesan lagi. | Semua kejadian ini menyertakan objek [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions.md). Perbarui handler kejadian Anda untuk memenuhi pesanan: #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') # You can find your endpoint's secret in the output of the `stripe listen` # command you ran earlier endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end case event['type']when 'checkout.session.completed' checkout_session = event['data']['object'] # Save an order in your database, marked as 'awaiting payment' create_order(checkout_session) # Check if the order is already paid (for example, from a card payment) # # A delayed notification payment will have an `unpaid` status, as # you're still waiting for funds to be transferred from the customer's # account. if checkout_session.payment_status == 'paid' fulfill_order(checkout_session) end when 'checkout.session.async_payment_succeeded' checkout_session = event['data']['object'] # Fulfill the purchase... fulfill_order(checkout_session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(checkout_session) end status 200 end def fulfill_order(checkout_session) # TODO: fill in with your own logic puts "Fulfilling order for #{checkout_session.inspect}" enddef create_order(checkout_session) # TODO: fill in with your own logic puts "Creating order for #{checkout_session.inspect}" end def email_customer_about_failed_payment(checkout_session) # TODO: fill in with your own logic puts "Emailing customer about payment failure for: #{checkout_session.inspect}" end ``` ### Mencoba Pastikan `stripe listen` masih berjalan. Lewati Checkout sebagai pengguna percobaan, seperti di langkah sebelumnya. Handler kejadian Anda seharusnya menerima kejadian `checkout.session.completed`, dan Anda seharusnya berhasil menanganinya. Sekarang setelah Anda menyelesaikan langkah-langkah ini, Anda siap melanjutkan ke tahap produksi. ## Coba integrasi Anda #### Kartu | Nomor kartu | Skenario | Cara mencoba | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Pembayaran kartu berhasil dan tidak memerlukan autentikasi. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000002500003155 | Pembayaran kartu memerlukan *autentikasi* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase). | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000000000009995 | Kartu ini ditolak dengan kode penolakan seperti `insufficient_funds`. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 6205500000000000004 | Kartu UnionPay memiliki panjang variabel 13–19 angka. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | #### Dompet | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Alipay | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi segera](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | #### Pengarahan ulang bank | Metode pembayaran | Skenario | Cara mencoba | | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung BECS | Pelanggan Anda berhasil membayar dengan Debit Langsung BECS. | Isi formulir menggunakan nomor akun `900123456` dan BSB `000000`. PaymentIntent yang telah dikonfirmasi awalnya akan berstatus `processing`, kemudian berubah menjadi status `succeeded` setelah 3 menit. | | Debit Langsung BECS | Pembayaran pelanggan Anda gagal dengan kode kesalahan `account_closed`. | Isi formulir menggunakan nomor akun `111111113` dan BSB `000000`. | | Bancontact, EPS, iDEAL, dan Przelewy24 | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi segera dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi tertunda](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi tertunda dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | BLIK | Pembayaran BLIK gagal dalam berbagai cara — kegagalan langsung (misalnya, kode kedaluwarsa atau tidak valid), kesalahan tertunda (bank menolak) atau waktu habis (pelanggan tidak merespons tepat waktu). | Gunakan pola email untuk [menyimulasikan berbagai kegagalan.](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Debit bank | Metode pembayaran | Skenario | Cara mencoba | | ------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung SEPA | Pelanggan Anda berhasil membayar dengan Debit Langsung SEPA. | Isilah formulir menggunakan nomor akun `AT321904300235473204`. Transisi PaymentIntent yang telah dikonfirmasi awalnya menjadi sedang diproses, kemudian akan berubah menjadi status berhasil setelah tiga menit kemudian. | | Debit Langsung SEPA | Transisi status maksud pembayaran pelanggan dari `processing` menjadi `requires_payment_method`. | Isilah formulir menggunakan nomor akun `AT861904300235473202`. | #### Voucher | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | Boleto, OXXO | Pelanggan Anda membayar dengan voucher OXXO atau Boleto. | Pilih Boleto atau OXXO sebagai metode pembayaran dan serahkan pembayaran. Tutup dialog setelah muncul. | Lihat [Pengujian](https://docs.stripe.com/testing.md) untuk mendapatkan informasi tambahan untuk menguji integrasi Anda. # Formulir tersemat > This is a Formulir tersemat for when platform is web and payment-ui is checkout-form. View the full page at https://docs.stripe.com/payments/dashboard-payment-methods?platform=web&payment-ui=checkout-form. > Learn more about [the embedded form integration](https://docs.stripe.com/payments/checkout/how-checkout-works.md?payment-ui=checkout-form). Anda dapat memperbarui integrasi untuk menggunakan preferensi metode pembayaran dari Dashboard. Hal ini memungkinkan Stripe menampilkan semua metode pembayaran yang kompatibel kepada pelanggan Anda saat checkout, tergantung pada mata uang yang dipilih, lokasi, atau batasan metode pembayaran apa pun, seperti jumlah transaksi maksimum. Formulir Checkout menunjukkan metode pembayaran yang diketahui dapat meningkatkan konversi untuk lokasi pelanggan Anda, dan menyembunyikan metode pembayaran lain di menu overflow. Pelanggan masih dapat memilih dari metode pembayaran di menu overflow. ## Perbarui integrasi Anda Untuk integrasi yang ada, Anda harus menghapus `payment_method_types` untuk memigrasikan preferensi metode pembayaran ke Dashboard. Melakukannya memungkinkan beberapa metode pembayaran diaktifkan secara otomatis, termasuk kartu dan dompet digital. `mata uang` membatasi metode pembayaran yang dilihat pelanggan Anda di Sesi Checkout. > Saat Anda mengupgrade integrasi, metode pembayaran non-default (seperti pengalihan bank) awalnya dinonaktifkan. Anda harus mengaktifkan metode pembayaran tambahan dari [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) di Dashboard. #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') client.v1.checkout.sessions.create({ line_items: [ { price_data: { currency: 'eur', product_data: {name: 'T-shirt'}, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', return_url: 'https://example.com/return', ui_mode: 'form', }) ``` ## Lihat metode pembayaran yang tersedia di Dashboard Anda dapat melihat metode pembayaran yang saat ini Anda terima dari [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) di Dashboard. Daftar ini mencakup metode pembayaran yang diaktifkan Stripe secara default, seperti kartu. Anda juga dapat mengaktifkan atau menonaktifkan metode pembayaran Perorangan, seperti Apple Pay atau Google Pay. Dengan Checkout Sessions API, Stripe mengevaluasi mata uang dan batasan apa pun, lalu secara dinamis menyajikan metode pembayaran yang didukung kepada pelanggan. Misalnya, Apple Pay diaktifkan dan Google Pay dinonaktifkan, secara default. Dalam beberapa kasus, Stripe mungkin tidak menampilkan metode pembayaran ini, meskipun Anda mengaktifkannya. Stripe tidak menampilkan Google Pay jika Anda [aktifkan pajak otomatis](https://docs.stripe.com/tax/checkout.md) tanpa mengumpulkan alamat pengiriman. Untuk melihat bagaimana Stripe menampilkan metode pembayaran Anda kepada pelanggan, masukkan ID transaksi atau atur jumlah pesanan dan mata uang di [Dashboard](https://dashboard.stripe.com/settings/payment_methods/review). ## Menambahkan atau menghapus metode pembayaran dalam integrasi Anda Aktifkan metode pembayaran untuk integrasi Anda dari [Pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) di Dashboard. Anda dapat memilih **Aktifkan** untuk mengaktifkan beberapa metode pembayaran. Untuk metode pembayaran yang memerlukan langkah tambahan, pilih **Siapkan** atau **Tinjau ketentuan**. Pelajari metode pembayaran mana yang tepat untuk bisnis Anda dari [panduan metode pembayaran](https://stripe.com/payments/payment-methods-guide) kami. ## (Direkomendasikan) Tangani metode pembayaran dengan notifikasi tertunda Metode pembayaran yang Anda integrasikan mungkin memiliki konfirmasi pembayaran yang tertunda. Jika Anda mengatur *webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) ke [secara otomatis memenuhi](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) pesanan, Anda mungkin perlu memperbarui integrasi Checkout saat menambahkan metode pembayaran pertama yang memiliki notifikasi tertunda. > Langkah ini hanya diperlukan jika Anda berencana menggunakan salah satu metode pembayaran berikut: [Debit Langsung Bacs](https://docs.stripe.com/payments/bacs-debit/accept-a-payment.md), [Transfer Bank](https://docs.stripe.com/payments/bank-transfers/accept-a-payment.md), [Boleto](https://docs.stripe.com/payments/boleto/accept-a-payment.md), [Debit praotorisasi Kanada](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md), [Konbini](https://docs.stripe.com/payments/konbini/accept-a-payment.md), [OXXO](https://docs.stripe.com/payments/oxxo/accept-a-payment.md), [Pay by Bank](https://docs.stripe.com/payments/pay-by-bank/accept-a-payment.md), [Debit Langsung SEPA](https://docs.stripe.com/payments/sepa-debit/accept-a-payment.md), atau [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment.md). Saat menerima pembayaran dengan metode pembayaran notifikasi tertunda, dana tidak langsung tersedia. Diperlukan beberapa hari untuk memproses dana sehingga Anda harus menunda *pemenuhan* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) pesanan hingga dana tersedia di akun Anda. Setelah pembayaran berhasil, status *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) pokok berubah dari `processing` menjadi `succeeded`. Anda perlu menangani kejadian Checkout berikut: | Nama Kejadian | Keterangan | Langkah berikutnya | | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Pelanggan telah berhasil mengotorisasi pembayaran debit dengan mengirimkan formulir yang disematkan. | Tunggu pembayaran berhasil atau gagal. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Pembayaran pelanggan berhasil. | Penuhi barang atau layanan yang dibeli. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Pembayaran ditolak, atau gagal karena beberapa alasan lainnya. | Hubungi pelanggan melalui email dan minta agar mereka memesan lagi. | Semua kejadian ini menyertakan objek [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions.md). Perbarui handler kejadian Anda untuk memenuhi pesanan: #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') # You can find your endpoint's secret in the output of the `stripe listen` # command you ran earlier endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end case event['type']when 'checkout.session.completed' checkout_session = event['data']['object'] # Save an order in your database, marked as 'awaiting payment' create_order(checkout_session) # Check if the order is already paid (for example, from a card payment) # # A delayed notification payment will have an `unpaid` status, as # you're still waiting for funds to be transferred from the customer's # account. if checkout_session.payment_status == 'paid' fulfill_order(checkout_session) end when 'checkout.session.async_payment_succeeded' checkout_session = event['data']['object'] # Fulfill the purchase... fulfill_order(checkout_session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(checkout_session) end status 200 end def fulfill_order(checkout_session) # TODO: fill in with your own logic puts "Fulfilling order for #{checkout_session.inspect}" enddef create_order(checkout_session) # TODO: fill in with your own logic puts "Creating order for #{checkout_session.inspect}" end def email_customer_about_failed_payment(checkout_session) # TODO: fill in with your own logic puts "Emailing customer about payment failure for: #{checkout_session.inspect}" end ``` ### Mencoba Pastikan `stripe listen` masih berjalan. Lewati Checkout sebagai pengguna percobaan, seperti di langkah sebelumnya. Handler kejadian Anda seharusnya menerima kejadian `checkout.session.completed`, dan Anda seharusnya berhasil menanganinya. Sekarang setelah Anda menyelesaikan langkah-langkah ini, Anda siap melanjutkan ke tahap produksi. ## Coba integrasi Anda #### Kartu | Nomor kartu | Skenario | Cara mencoba | | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Pembayaran kartu berhasil dan tidak memerlukan autentikasi. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000002500003155 | Pembayaran kartu memerlukan *autentikasi* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase). | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 4000000000009995 | Kartu ini ditolak dengan kode penolakan seperti `insufficient_funds`. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | | 6205500000000000004 | Kartu UnionPay memiliki panjang variabel 13–19 angka. | Isilah formulir kartu kredit menggunakan nomor kartu kredit dengan sembarang tanggal kedaluwarsa, CVC, dan kode pos. | #### Dompet | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Alipay | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi segera](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | #### Pengarahan ulang bank | Metode pembayaran | Skenario | Cara mencoba | | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung BECS | Pelanggan Anda berhasil membayar dengan Debit Langsung BECS. | Isi formulir menggunakan nomor akun `900123456` dan BSB `000000`. PaymentIntent yang telah dikonfirmasi awalnya akan berstatus `processing`, kemudian berubah menjadi status `succeeded` setelah 3 menit. | | Debit Langsung BECS | Pembayaran pelanggan Anda gagal dengan kode kesalahan `account_closed`. | Isi formulir menggunakan nomor akun `111111113` dan BSB `000000`. | | Bancontact, EPS, iDEAL, dan Przelewy24 | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi segera dan berbasis pengarahan ulang. | Pilih sembarang metode pembayaran berbasis pengarahan ulang, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda berhasil membayar menggunakan metode pembayaran dengan [notifikasi tertunda](https://docs.stripe.com/payments/payment-methods.md#payment-notification) dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Selesaikan pembayaran percobaan** di halaman pengarahan ulang. | | Pay by Bank | Pelanggan Anda gagal melakukan autentikasi di halaman pengarahan ulang untuk metode pembayaran dengan notifikasi tertunda dan berbasis pengarahan ulang. | Pilih metode pembayaran, isilah detail yang diperlukan, dan konfirmasikan pembayaran. Kemudian klik **Gagalkan pembayaran percobaan** di halaman pengarahan ulang. | | BLIK | Pembayaran BLIK gagal dalam berbagai cara — kegagalan langsung (misalnya, kode kedaluwarsa atau tidak valid), kesalahan tertunda (bank menolak) atau waktu habis (pelanggan tidak merespons tepat waktu). | Gunakan pola email untuk [menyimulasikan berbagai kegagalan.](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Debit bank | Metode pembayaran | Skenario | Cara mencoba | | ------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Debit Langsung SEPA | Pelanggan Anda berhasil membayar dengan Debit Langsung SEPA. | Isilah formulir menggunakan nomor akun `AT321904300235473204`. Transisi PaymentIntent yang telah dikonfirmasi awalnya menjadi sedang diproses, kemudian akan berubah menjadi status berhasil setelah tiga menit kemudian. | | Debit Langsung SEPA | Transisi status maksud pembayaran pelanggan dari `processing` menjadi `requires_payment_method`. | Isilah formulir menggunakan nomor akun `AT861904300235473202`. | #### Voucher | Metode pembayaran | Skenario | Cara mencoba | | ----------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | Boleto, OXXO | Pelanggan Anda membayar dengan voucher OXXO atau Boleto. | Pilih Boleto atau OXXO sebagai metode pembayaran dan serahkan pembayaran. Tutup dialog setelah muncul. | Lihat [Pengujian](https://docs.stripe.com/testing.md) untuk mendapatkan informasi tambahan untuk menguji integrasi Anda.