# Panduan migrasi Checkout Pelajari cara bermigrasi ke integrasi terbaru Stripe. ![](https://b.stripecdn.com/docs-statics-srv/assets/migration.4db0b4061fb36d6a43762c3f23ef9c00.png) Versi lama Checkout menyajikan dialog modal kepada pelanggan untuk mengumpulkan informasi kartu, lalu mengembalikan token atau sumber ke situs web Anda. Sebaliknya, [Payment Links](https://docs.stripe.com/payment-links.md) dan versi [Checkout](https://docs.stripe.com/payments/checkout.md) saat ini merupakan halaman pembayaran cerdas yang dihosting oleh Stripe untuk memproses pembayaran atau *langganan* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Kedua integrasi tersebut mendukung Apple Pay, Google Pay, Dynamic *3D Secure* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments), *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), penggunaan kembali data pelanggan yang sudah ada, serta berbagai fitur lainnya. Anda juga dapat [membandingkan integrasi pembayaran lainnya](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability) jika Payment Links atau Checkout tidak sesuai dengan kebutuhan Anda. ## Before you begin Jika Anda menggunakan [SDK](https://docs.stripe.com/sdks.md) Stripe, lakukan upgrade ke versi terbaru. ## Pilih model bisnis Anda Untuk melakukan migrasi dari versi Checkout terdahulu, ikuti panduan yang paling mewakili model bisnis Anda. Setiap panduan merekomendasikan jalur integrasi bersama kode contoh. - [Skema biaya dan katalog produk dinamis](https://docs.stripe.com/payments/checkout/migration.md#api-products) Jika Anda memiliki katalog produk yang besar atau memerlukan dukungan untuk item baris yang dibuat secara dinamis (seperti donasi atau pajak). - [Langganan dinamis](https://docs.stripe.com/payments/checkout/migration.md#api-subscriptions) Jika Anda adalah penyedia SaaS yang menagih pengguna dan membutuhkan dukungan untuk fitur lanjutan. - [Connect platforms and marketplaces](https://docs.stripe.com/payments/checkout/migration.md#connect) Jika Anda menjalankan situs belanja online yang menghubungkan penyedia jasa dengan pelanggan. - [Menyimpan metode pembayaran untuk penggunaan di masa mendatang](https://docs.stripe.com/payments/checkout/migration.md#setup-mode) Jika Anda menjalankan bisnis yang tidak men-charge pelanggan hingga layanan diberikan. - [Katalog produk sederhana dengan skema biaya tetap](https://docs.stripe.com/payments/checkout/migration.md#simple-products) Jika Anda menjual beberapa produk dengan harga yang sebelumnya telah ditentukan. - [Langganan sederhana](https://docs.stripe.com/payments/checkout/migration.md#simple-subscriptions) Jika Anda adalah penyedia SaaS dengan paket langganan bulanan. Saat mengikuti panduan migrasi yang relevan, Anda juga dapat mereferensikan [tabel konversi](https://docs.stripe.com/payments/checkout/migration.md#parameter-conversion) untuk pemetaan parameter tertentu dan opsi konfigurasi. ## Skema biaya dan katalog produk dinamis Jika Anda menjual produk yang jumlah atau item barisnya ditentukan secara dinamis (misalnya, katalog produk besar atau donasi), lihat [menerima pembayaran satu kali](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout). Anda mungkin telah menggunakan versi Checkout terdahulu untuk membuat token atau sumber pada client, serta meneruskannya ke server Anda untuk membuat charge. Versi Checkout saat ini membalikkan alur ini—Anda membuat Sesi pada server, mengalihkan pelanggan ke Checkout, yang kemudian dialihkan untuk kembali ke aplikasi Anda setelah pembayaran. ### Sebelum Dengan versi terdahulu Checkout, Anda akan menampilkan jumlah dinamis dan keterangan serta mengumpulkan informasi kartu dari pelanggan Anda. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda dan melakukan charge. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="Custom t-shirt" \ -d "amount"="{{ORDER_AMOUNT}}" \ -d "currency"="usd" ``` ### Setelah Tambahkan tombol checkout ke situs web Anda yang memanggil endpoint sisi server untuk membuat [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Buy cool new product
``` Sesi Checkout adalah representasi terprogram dari apa yang dilihat pelanggan Anda saat mereka dialihkan ke formulir pembayaran. Anda dapat melakukan konfigurasi dengan opsi seperti: - [Mata anggaran](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) untuk di-charge - Mata uang untuk digunakan Sertakan `success_url` dengan URL halaman di situs web Anda yang akan diarahkan pelanggan setelah menyelesaikan pembayaran. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=Custom t-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Setelah membuat Sesi Checkout, alihkan pelanggan Anda ke [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) yang dikembalikan di respons. Jika Anda perlu memenuhi barang yang dibeli setelah pembayaran, lihat [Penuhi pembayaran Payment Link dan Checkout](https://docs.stripe.com/checkout/fulfillment.md). ## Langganan dinamis Jika Anda menyediakan layanan langganan yang ditentukan secara dinamis atau memerlukan dukungan untuk fitur lanjutan lainnya, lihat [menyiapkan langganan](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md). Anda mungkin telah menggunakan versi Checkout terdahulu untuk membuat token atau sumber pada client, serta meneruskannya ke server Anda untuk membuat pelanggan dan langganan. Versi Checkout saat ini membalikkan alur ini—Anda membuat Sesi pada server terlebih dahulu, mengalihkan pelanggan ke Checkout, yang kemudian dialihkan untuk kembali ke aplikasi Anda setelah berhasil. ### Sebelum Dengan versi terdahulu Checkout, Anda akan menampilkan informasi langganan dan mengumpulkan informasi kartu dari pelanggan Anda. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda untuk membuat pelanggan dan langganan. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/subscriptions \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[0][price]"="{PRICE_ID}" \ -d "trial_period_days"=30 ``` ### Setelah Tambahkan tombol checkout ke situs web Anda yang memanggil endpoint sisi server untuk membuat [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Subscribe to cool new service
``` Sesi Checkout adalah representasi terprogram dari apa yang dilihat pelanggan Anda saat mereka dialihkan ke formulir pembayaran. Anda dapat melakukan konfigurasi dengan opsi seperti: - [Mata anggaran](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) untuk di-charge - Mata uang untuk digunakan Sertakan `success_url` dengan URL halaman di situs web Anda yang akan diarahkan pelanggan setelah menyelesaikan pembayaran. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_period_days]=30" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success" ``` Setelah membuat Sesi Checkout, alihkan pelanggan Anda ke [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) yang dikembalikan di respons. Pelanggan dialihkan ke `success_url` setelah pelanggan dan langganan dibuat. Jika Anda perlu memenuhi layanan yang dibeli setelah pembayaran, lihat [Penuhi pembayaran Payment Link dan Checkout](https://docs.stripe.com/checkout/fulfillment.md). ## Situs belanja online dan platform Connect Jika Anda menjalankan situs belanja online atau platform Connect dan melakukan pembayaran yang melibatkan akun terhubung, pertimbangkan menggunakan Checkout versi saat ini. Contoh berikut menunjukkan penggunaan Checkout Sessions API untuk memproses Direct Charges. Anda juga dapat menggunakan Checkout dan Connect dengan [Destination Charges](https://docs.stripe.com/connect/destination-charges.md?platform=web&ui=stripe-hosted) serta [Separate Charges and Transfers](https://docs.stripe.com/connect/separate-charges-and-transfers.md?platform=web&ui=stripe-hosted). ### Sebelum Dengan versi terdahulu Checkout, Anda akan mengumpulkan informasi kartu dari pelanggan Anda pada client. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda dan melakukan charge atas nama akun terhubung. #### curl ```bash curl https://api.stripe.com/v1/charges \ -u <>: \ -d "source"="{{TOKEN_ID}}" \ -d "description"="10 cucumbers from Roger\"s Farm" \ -d "amount"=2000 \ -d "currency"="usd" \ -d "application_fee_amount"=200 \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" ``` ### Setelah Tambahkan tombol checkout ke situs web Anda yang memanggil endpoint sisi server untuk membuat [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Roger's Farm
``` Sesi Checkout adalah representasi terprogram dari apa yang dilihat pelanggan Anda saat mereka dialihkan ke formulir pembayaran. Anda dapat melakukan konfigurasi dengan opsi seperti: - [Mata anggaran](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) untuk di-charge - Mata uang untuk digunakan Sertakan `success_url` dengan URL halaman di situs web Anda yang akan diarahkan pelanggan setelah menyelesaikan pembayaran. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "line_items[0][price_data][currency]=usd" \ --data-urlencode "line_items[0][price_data][product_data][name]=Cucumbers from Roger's Farm" \ -d "line_items[0][price_data][unit_amount]=200" \ -d "line_items[0][quantity]=10" \ -d "payment_intent_data[application_fee_amount]=200" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Setelah membuat Sesi Checkout, alihkan pelanggan Anda ke [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) yang dikembalikan di respons. Jika Anda perlu memenuhi barang atau layanan yang dibeli setelah pembayaran, lihat [Penuhi pembayaran Payment Link dan Checkout](https://docs.stripe.com/checkout/fulfillment.md). ## Menyimpan metode pembayaran untuk penggunaan di masa mendatang Jika Anda menyediakan layanan yang tidak segera men-charge pelanggan, lihat [menyiapkan pembayaran mendatang](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout). Anda mungkin telah menggunakan versi Checkout terdahulu untuk membuat token atau sumber pada client, serta meneruskannya ke server Anda guna disimpan untuk penggunaan nanti. Versi Checkout saat ini membalikkan alur ini—Anda membuat Sesi pada server terlebih dahulu, mengalihkan pelanggan ke Checkout, yang kemudian dialihkan untuk kembali ke aplikasi Anda setelah berhasil. ### Sebelum Dengan versi terdahulu Checkout, Anda akan menampilkan informasi charge dan mengumpulkan informasi kartu dari pelanggan Anda. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda untuk membuat charge nantinya. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="Cleaning service" \ -d "amount"="{{ORDER_AMOUNT}}" \ -d "currency"="usd" ``` ### Setelah Tambahkan tombol checkout ke situs web Anda yang memanggil endpoint sisi server untuk membuat [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Cleaning service
``` Sesi Checkout adalah representasi terprogram dari apa yang dilihat pelanggan Anda saat mereka dialihkan ke formulir pembayaran. Anda dapat melakukan konfigurasi dengan opsi seperti: - [Mata anggaran](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) untuk di-charge - Mata uang untuk digunakan Sertakan `success_url` dengan URL halaman pada situs web tujuan pengalihan pelanggan Anda setelah menyelesaikan penyiapan pembayaran. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=setup \ -d currency=usd \ --data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}" ``` Setelah membuat Sesi Checkout, arahkan pelanggan Anda ke [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) yang dikembalikan sebagai tanggapan untuk mengumpulkan detail metode pembayaran. Pelanggan dialihkan ke `success_url` setelah menyelesaikan alur. Saat Anda siap menagih pembayaran, [ambil SetupIntent](https://docs.stripe.com/payments/checkout/save-and-reuse.md?payment-ui=stripe-hosted#retrieve-checkout-session) dari Sesi Checkout dan gunakan untuk menyiapkan transaksi. ## Katalog produk sederhana dengan skema biaya tetap Jika Anda menjual produk dengan harga tetap (seperti kaus pendek atau buku elektronik), lihat panduan pada [tautan pembayaran](https://docs.stripe.com/payment-links/create.md). Anda mungkin telah menggunakan versi Checkout terdahulu untuk membuat token atau sumber pada client, dan meneruskannya ke server Anda untuk membuat charge. ### Sebelum Dengan versi terdahulu Checkout, Anda akan menampilkan jumlah dan keterangan serta mengumpulkan informasi kartu dari pelanggan Anda. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda untuk membuat pelanggan dan charge. #### Curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="{{STRIPE_EMAIL}}" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="T-shirt" \ -d "amount"=500 \ -d "currency"="usd" ``` ### Setelah Buat [Produk](https://docs.stripe.com/api/products.md) dan [Harga](https://docs.stripe.com/api/prices.md) yang mewakili item. Contoh berikut membuat Produk dalam baris. Anda juga dapat membuat objek ini di [Dashboard](https://dashboard.stripe.com/test/products). ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d currency=usd \ -d unit_amount=500 \ -d "product_data[name]=T-shirt" ``` Buat [Tautan Pembayaran](https://dashboard.stripe.com/payment-links/create) di Dashboard menggunakan Produk dan Harga. Setelah Anda membuat tautan ini, klik **Tombol beli** untuk melakukan konfigurasi desain serta menghasilkan kode yang dapat disalin dan tempelkan ke situs web Anda. #### HTML ```html

Purchase your new kit

``` ## Langganan sederhana Jika Anda menyediakan layanan langganan sederhana (seperti akses bulanan ke perangkat lunak), lihat panduan pada [tautan pembayaran](https://docs.stripe.com/payment-links/create.md). Anda mungkin telah menggunakan versi Checkout terdahulu untuk membuat token atau sumber pada client, dan meneruskannya ke server Anda untuk membuat pelanggan serta langganan. ### Sebelum Dengan versi terdahulu Checkout, Anda akan menampilkan informasi langganan dan mengumpulkan informasi kartu dari pelanggan Anda. ```html
``` Berikutnya, Anda akan mengirim token atau sumber yang dihasilkan ke server Anda untuk membuat pelanggan dan langganan. #### Curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="{{STRIPE_EMAIL}}" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/subscriptions \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[][price]"="{PRICE_ID}" \ -d "items[][quantity]"=1 ``` ### Setelah Buat [Produk](https://docs.stripe.com/api/products.md) dan [Harga](https://docs.stripe.com/api/prices.md) yang mewakili langganan. Contoh berikut membuat Produk dalam baris. Anda juga dapat membuat objek ini di [Dashboard](https://dashboard.stripe.com/test/products). ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d currency=usd \ -d unit_amount=2000 \ -d "recurring[interval]=month" \ -d "product_data[name]=Gold Tier" ``` Buat [Tautan Pembayaran](https://dashboard.stripe.com/payment-links/create) di Dashboard menggunakan Produk dan Harga. Setelah Anda membuat tautan ini, klik **Tombol beli** untuk melakukan konfigurasi desain serta menghasilkan kode yang dapat disalin dan tempelkan ke situs web Anda. #### HTML ```html

Purchase your new kit

``` ## Konversi parameter Checkout versi saat ini mendukung sebagian besar fungsionalitas versi Checkout terdahulu. Namun, versi tersebut tidak berbagi API yang sama. Tabel berikut memetakan parameter serta opsi konfigurasi antara versi terdahulu dan versi saat ini. Untuk daftar lengkap opsi konfigurasi, lihat [Sesi Checkout](https://docs.stripe.com/api/checkout/sessions.md). | Versi terdahulu | Versi saat ini | Kiat integrasi | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowRememberMe` | Tidak didukung | Gunakan kembali data pelanggan yang sudah ada dengan menentukan parameter `customer_account` atau `customer` saat membuat [Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md). Anda juga dapat mengaktifkan [Link](https://docs.stripe.com/payments/link/checkout-link.md) untuk memungkinkan pelanggan menyimpan dan menggunakan kembali informasi pembayaran mereka dengan aman. | | `amount` | Dihitung secara otomatis sebagai penjumlahan dari jumlah pada semua `line_items` | Jumlah total adalah penjumlahan item baris yang Anda teruskan ke Checkout. | | `billingAddress` | `Session.billing_address_collection` | Checkout mengumpulkan alamat tagihan secara otomatis bila diperlukan untuk pencegahan penipuan atau tujuan regulasi. Atur parameter ini ke `required` untuk selalu mengumpulkan alamat tagihan. | | `closed` | Saat pelanggan ingin menutup Checkout, mereka menutup tab browser. | | | `currency` | `Session.currency` | | | `description` | `Session.line_items.description` atau `product.description` | Jika Anda menentukan harga, Checkout menampilkan keterangan yang dihitung secara otomatis mengenai seberapa sering pembayaran terjadi. Jika Anda menentukan `Session.line_items`, Checkout menampilkan `name` untuk setiap item baris. | | `email` | `Session.customer_email` | Jika sudah mengetahui email pelanggan, Anda dapat otomatis mengisinya dengan [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email) saat membuat Sesi Checkout. | | `image` | **Branding bisnis**: Unggah logo atau ikon bisnis Anda di Dashboard. **Gambar produk**: Tentukan gambar untuk setiap mata anggaran dengan `product.images`. | Checkout menggunakan gambar spesifik untuk [branding](https://docs.stripe.com/payments/checkout/customization/appearance.md#branding) bisnis dan untuk produk yang Anda jual. Checkout menampilkan logo bisnis Anda secara default serta kembali ke ikon bisnis bersama nama bisnis Anda. | | `key` | Tidak ada lagi parameter yang diteruskan ke Checkout | | | `locale` | `Session.locale` | Anda dapat menentukan [locale](https://docs.stripe.com/payments/checkout/custom-components.md#localization) yang didukung saat membuat Sesi Checkout. | | `name` | `product.name` untuk harga yang ditentukan di `Session.line_items` | Jika Anda menentukan harga, Checkout menampilkan nama produk yang memakai harga itu. Jika Anda menentukan `Session.line_items`, Checkout menampilkan `name` untuk setiap item baris. | | `panelLabel` | `submit_type` | Checkout secara otomatis menyesuaikan teks tombol berdasarkan item yang Anda jual. Untuk pembayaran satu kali, gunakan [submit_type](https://docs.stripe.com/payments/checkout/custom-components.md#submit-button) untuk menyesuaikan teks tombol. | | `shippingAddress` | `session.shipping_address_collection` | [Kumpulkan informasi alamat pengiriman](https://docs.stripe.com/payments/collect-addresses.md?payment-ui=checkout) dengan meneruskan larik `allowed_countries` negara tujuan yang ingin Anda izinkan. | | `token` atau `source` | `success_url` | Tidak ada lagi callback di JavaScript bila pembayaran selesai. Karena pelanggan Anda membayar pada halaman yang berbeda, atur `success_url` untuk mengalihkan pelanggan setelah mereka menyelesaikan pembayaran. | | `zipCode` | Dikumpulkan secara otomatis oleh Checkout | Checkout mengumpulkan kode pos secara otomatis bila diperlukan untuk pencegahan penipuan atau tujuan regulasi. | ## See also - [Tambahkan metode pembayaran lainnya](https://docs.stripe.com/payments/payment-methods/overview.md) - [Kumpulkan alamat dan nomor telepon](https://docs.stripe.com/payments/collect-addresses.md)