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 Umum
Mulai dengan Connect
Dasar-dasar integrasi
Contoh integrasi
Lakukan onboarding akun
Konfigurasikan Dashboard akun
    Mulai dengan komponen tersemat Connect
      Mulai cepat
    Sesuaikan komponen tersemat Connect
    Komponen tersemat Connect yang didukung
    Penyesuaian Dashboard Stripe
    Kontrol platform untuk akun Dashboard Stripe
    Dashboard Express
Terima pembayaran
Kirim pembayaran ke akun
Kelola platform Connect Anda
Formulir pajak untuk platform Connect Anda
Gunakan tipe akun terhubung
BerandaPlatform dan situs belanja onlineConfigure account Dashboards

Mulai dengan komponen Connect yang disematkan

Pelajari cara menyematkan fungsionalitas dashboard ke situs web Anda.

Salin halaman

Gunakan komponen tersemat Connect untuk menambahkan fungsionalitas dashboard akun terhubung ke situs web Anda. Pustaka ini dan API pendukungnya memungkinkan Anda memberikan akses ke produk Stripe secara langsung di dashboard dan aplikasi seluler.

Pratinjau pribadi

Android SDK saat ini hanya tersedia dengan ajakan saja dan memiliki batasan berikut:

  • Hanya mendukung akun di mana controller.requirement_collection adalah application, seperti akun terhubung Custom.
  • Autentikasi pengguna tidak didukung, jadi Anda harus mengatur features.disable_stripe_user_authentication ke true di endpoint server untuk segala komponen bila Anda membuat sesi akun.

Masukkan email Anda dalam formulir di bawah ini untuk meminta ajakan.

Siapkan StripeConnect
Sisi klien
Sisi server

Stripe menggunakan AccountSession untuk mengekspresikan maksud Anda guna mendelegasikan akses API ke akun terhubung Anda.

AccountSessions API mengembalikan client secret yang memungkinkan komponen tersemat mengakses sumber daya akun terhubung seolah-olah Anda yang melakukan panggilan API untuk mereka.

Buat AccountSession Server

Aplikasi Anda harus memprakarsai permintaan ke server untuk memperoleh sesi akun. Saat ini, hanya Onboarding akun yang didukung. Anda dapat membuat endpoint baru pada server yang mengembalikan client secret ke aplikasi:

main.rb
Ruby
require 'sinatra' require 'stripe' # This is a placeholder - it should be replaced with your secret API key. # Sign in to see your own test API key embedded in code samples. # Don’t submit any personally identifiable information in requests made with this key. Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/account_session' do content_type 'application/json' # Create an AccountSession begin account_session = Stripe::AccountSession.create({ account:
'{{CONNECTED_ACCOUNT_ID}}'
, components: { account_onboarding: { enabled: true, features: { # Authentication must be disabled for the mobile SDK disable_stripe_user_authentication: true, } } } }) { client_secret: account_session[:client_secret] }.to_json rescue => error puts "An error occurred when calling the Stripe API to create an account session: #{error.message}"; return [500, { error: error.message }.to_json] end end

Peringatan

Autentikasi pengguna tidak didukung, jadi Anda harus mengatur features.disable_stripe_user_authentication ke true di endpoint server untuk segala komponen bila Anda membuat sesi akun.

Buat Account Session API

Create Account Session API menentukan akses komponen dan fitur untuk komponen tersemat Connect. Stripe memberlakukan parameter ini untuk setiap komponen yang sesuai dengan sesi akun. Jika aplikasi Anda mendukung beberapa peran pengguna, pastikan komponen dan fitur yang diaktifkan untuk sesi akun tersebut sesuai dengan peran pengguna saat ini. Misalnya, Anda dapat mengaktifkan manajemen pengembalian dana hanya untuk administrator situs Anda, tetapi tidak untuk pengguna lain. Untuk memastikan akses peran pengguna diberlakukan, Anda harus memetakan peran pengguna situs ke komponen sesi akun.

Instal StripeConnect SDK Client

Stripe Android SDK adalah sumber terbuka dan didokumentasikan lengkap.

Untuk menginstal SDK, tambahkan connectke blokdependencies` file app/build.gradle Anda:

build.gradle.kts
Kotlin
plugins { id("com.android.application") } android { ... } dependencies { // ... // Connect Android SDK implementation("com.stripe:connect:21.15.1") }

Catatan

Untuk detail mengenai rilis SDK terbaru dan versi sebelumnya, lihat halaman Rilis di GitHub. Untuk menerima notifikasi bila rilis baru diterbitkan, lihat rilis untuk repositori.

Inisialisasikan EmbeddedComponentManager Client

Buat instance EmbeddedComponentManager dengan kunci yang dapat dipublikasikan dan lambda yang mengambil client secret dengan memanggil endpoint baru yang Anda buat pada server. Untuk menangani perubahan konfigurasi, simpan instance EmbeddedComponentManager di Aktivitas atau Fragmen ViewModel.

MyActivityViewModel.kt
Kotlin
class MyActivityViewModel : ViewModel() { val embeddedComponentManager: EmbeddedComponentManager = EmbeddedComponentManager( // This is a placeholder - it should be replaced with your publishable API key. // Sign in to see your own test API key embedded in code samples. // Don't submit any personally identifiable information in requests made with this key. publishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
, fetchClientSecret = ::fetchClientSecret, ) private suspend fun fetchClientSecret(): String? = try { // Fetch the AccountSession client secret Fuel.post("https://{{YOUR_SERVER_BASE_URL}}/account_session") .awaitString() .let { JSONObject(it).getString("client_secret") } } catch (error: CancellationException) { throw error } catch (error: Exception) { // Handle errors on the client side here println("Error fetching client secret: ${error.message}") null } }

Untuk membuat komponen, pertama-tama panggil EmbeddedComponentManager.onActivityCreate() di metode onCreate Aktivitas Anda. Kemudian, panggil metode buat yang sesuai pada instance EmbeddedComponentManager yang Anda buat di atas. Ini mengembalikan pengontrol yang dapat Anda gunakan untuk menyajikan komponen dalam aplikasi.

MyActivity.kt
Kotlin
class MyActivity : FragmentActivity() { private val viewModel: MyActivityViewModel by viewModels() private lateinit var accountOnboardingController: AccountOnboardingController override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) EmbeddedComponentManager.onActivityCreate(this) setContentView(R.layout.my_activity) accountOnboardingController = viewModel.embeddedComponentManager.createAccountOnboardingController(this) } private fun openAccountOnboarding() { accountOnboardingController.show() } }

Configure the Embedded Component Manager
Sisi client

Lihat referensi kode .

Sesuaikan tampilan komponen tersemat Connect

Toolkit Figma UI komponen tersemat berisi setiap komponen, pola umum, dan contoh aplikasi. Anda dapat menggunakannya untuk memvisualisasikan serta mendesain UI yang disematkan pada situs web Anda.

Kami menawarkan serangkaian opsi untuk menyesuaikan tampilan dan cara kerja komponen tersemat Connect. Penyesuaian ini memengaruhi tombol, ikon, dan aksen lainnya di sistem desain kami.

Popup yang diperlukan

Beberapa perilaku dalam komponen tersemat, seperti autentikasi pengguna, harus disajikan di WebView yang diautentikasi. Anda tidak dapat menyesuaikan komponen tersemat untuk menghilangkan Tampilan Web tersebut.

Anda dapat mengatur opsi ini menggunakan Appearance ketika melakukan inisialisasi EmbeddedComponentManager.

MyActivityViewModel.kt
Kotlin
// Specify custom fonts val customFonts = listOf( CustomFontSource( // Font file located in `assets/` folder assetsFilePath = "fonts/myCustomFont.ttf", name = "myCustomFont", weight = 1000, ) ) // Customize appearance val appearance = Appearance.Builder() .typography( Typography.Builder() .fontFamily("myCustomFont") // Same name as the custom font above .fontSizeBase(16f) // Unscaled font size .build() ) .colors( Colors.Builder() .primary(Color.RED) .build() ) .build() val embeddedComponentManager = EmbeddedComponentManager( publishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
, fetchClientSecret = ::fetchClientSecret, appearance = appearance, customFonts = customFonts, )

Gunakan font custom

Jika menggunakan font custom di aplikasi (misalnya, dari file .otf atau .tff yang disematkan di biner aplikasi), Anda harus menentukan file font di CustomFontSource yang diteruskan ke argumen customFonts ketika melakukan inisialisasi EmbeddedComponentManager. Hal ini memberi komponen tersemat Connect akses ke file font untuk merender font dengan benar.

Font yang ditentukan di appearance harus menggunakan CustomFontSource yang diteruskan ke EmbeddedComponentManager pada inisialisasi untuk dirender dengan benar.

Lihat dokumentasi referensi .

Konfigurasikan penampilan

Ketika menentukan ukuran font, gunakan ukuran font yang tidak diubah skalanya dan ditampilkan untuk kelas ukuran default perangkat. Komponen tersemat secara otomatis menskalakan ukuran font berdasarkan Pengaturan font aksesibilitas pengguna.

Lihat daftar lengkap opsi penampilan di Android.

Perbarui komponen tersemat Connect setelah inisialisasi

Panggil metode update untuk mengubah tampilan komponen tersemat setelah inisialisasi:

MyActivity.kt
Kotlin
val appearance = Appearance.Builder() .colors( Colors.Builder() .primary(ContextCompat.getColor(context, R.color.primary)) .build() ) .build() embeddedComponentManager.update(appearance = appearance)

Autentikasi

Kami menawarkan seperangkat API untuk mengelola sesi akun dan kredensial pengguna di komponen tersemat Connect.

Muat ulang client secret

Pada sesi yang berjalan lama, sesi dari client secret yang semula diberikan mungkin kedaluwarsa. Bila kedaluwarsa, kami secara otomatis menggunakan fetchClientSecret untuk mengambil client secret baru dan memuat ulang sesi. Anda tidak perlu meneruskan parameter tambahan.

MyActivityViewModel.kt
Kotlin
val embeddedComponentManager: EmbeddedComponentManager = EmbeddedComponentManager( publishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
, fetchClientSecret = ::fetchClientSecret, ) private suspend fun fetchClientSecret(): String? = try { Fuel.post("https://{{YOUR_SERVER_BASE_URL}}/account_session") .awaitString() .let { JSONObject(it).getString("client_secret") } } catch (error: CancellationException) { throw error } catch (error: Exception) { null }

Pelokalan

Komponen tersemat Connect mendukung lokal berikut:

BahasaKode lokal
Bahasa Bulgaria (Bulgaria)bg-BG
Bahasa Tionghoa (Disederhanakan)zh-Hans
Bahasa Tionghoa (Tradisional - Hong Kong)zh-Hant-HK
Bahasa Tionghoa (Tradisional - Taiwan)zh-Hant-TW
Bahasa Kroasia (Kroasia)hr-HR
Bahasa Ceko (Cheska)cs-CZ
Bahasa Denmark (Denmark)da-DK
Bahasa Belanda (Belanda)nl-NL
Bahasa Inggris (Australia)en-AU
Bahasa Inggris (India)en-IN
Bahasa Inggris (Irlandia)en-IE
Bahasa Inggris (Selandia Baru)en-NZ
Bahasa Inggris (Singapura)en-SG
Bahasa Inggris (Kerajaan Inggris)en-GB
Bahasa Inggris (Amerika Serikat)en-US
Bahasa Estonia (Estonia)et-EE
Bahasa Filipina (Filipina)fil-PH
Bahasa Finlandia (Finlandia)fi-FI
Bahasa Prancis (Kanada)fr-CA
Bahasa Prancis (Prancis)fr-FR
Bahasa Jerman (Jerman)de-DE
Bahasa Yunani (Yunani)el-GR
Bahasa Hungaria (Hungaria)hu-HU
Bahasa Indonesia (Indonesia)id-ID
Bahasa Italia (Italia)it-IT
Bahasa Jepang (Jepang)ja-JP
Bahasa Korea (Korea Selatan)ko-KR
Bahasa Latvia (Latvia)lv-LV
Bahasa Lituania (Lituania)lt-LT
Bahasa Melayu (Malaysia)ms-MY
Bahasa Malta (Malta)mt-MT
Bahasa Bokmål Norwegia (Norwegia)nb-NO
Bahasa Polandia (Polandia)pl-PL
Portugis (Brasil)pt-BR
Bahasa Portugis (Portugal)pt-PT
Bahasa Rumania (Rumania)ro-RO
Bahasa Slowakia (Slowakia)sk-SK
Bahasa Slovenia (Slovenia)sl-SI
Bahasa Spanyol (Argentina)es-AR
Bahasa Spanyol (Brasil)es-BR
Spanyol (Amerika Latin)es-419
Bahasa Spanyol (Meksiko)es-MX
Bahasa Spanyol (Spanyol)es-ES
Bahasa Swedia (Swedia)sv-SE
Bahasa Thailand (Thailand)th-TH
Bahasa Turki (Türkiye)tr-TR
Bahasa Vietnam (Vietnam)vi-VN

Autentikasi pengguna di komponen tersemat Connect

Komponen tersemat Connect biasanya tidak memerlukan autentikasi pengguna. Dalam sejumlah skenario, komponen tersemat Connect mengharuskan akun terhubung masuk dengan akun Stripe sebelum mengakses komponen untuk menyediakan fungsionalitas yang diperlukan (misalnya, menulis informasi ke badan hukum akun dalam kasus komponen onboarding akun). Komponen lain mungkin memerlukan autentikasi dalam komponen setelah komponen tersebut ditampilkan di awal.

Autentikasi diperlukan untuk akun terhubung di mana Stripe bertanggung jawab untuk mengumpulkan informasi terbaru bila persyaratan berubah. Untuk akun terhubung tempat Anda bertanggung jawab mengumpulkan informasi terbaru bila persyaratan jatuh tempo atau berubah, seperti akun Custom, autentikasi Stripe dikontrol oleh fitur Sesi Akun disable_stripe_user_authentication. Kami merekomendasikan pengimplementasian 2FA atau tindakan keamanan yang setara sebagai praktik terbaik. Untuk konfigurasi akun yang mendukung fitur ini, seperti Custom, Anda bertanggung jawab atas akun terhubung jika akun tersebut tidak dapat membayar kembali saldo negatif.

Komponen yang memerlukan autentikasi

Akun terhubung akan ditampilkan WebView yang diautentikasi dalam aplikasi Anda. Akun terhubung harus melakukan autentikasi sebelum dapat melanjutkan alur kerjanya dalam Tampilan Web.

Alur autentikasi yang di-hosting Stripe menampilkan nama, warna, dan ikon brand Anda sebagaimana diatur di pengaturan Connect serta tidak menggunakan tampilan dan font custom dari Manajer Komponen Tersemat sampai autentikasi selesai.

Batasan Android

Karena batasan dalam Android API, komponen tersemat tidak dapat menggunakan font custom dalam Tampilan Web yang diautentikasi, bahkan setelah autentikasi selesai.

Komponen berikut mengharuskan akun terhubung melakukan autentikasi dalam skenario tertentu:

  • Onboarding Akun

Tangani kesalahan pemuatan

Jika komponen tidak dimuat, Anda dapat bereaksi terhadap kegagalan dengan mengimplementasikan metode listener onLoadError komponen. Tergantung penyebab kegagalan, metode onLoadError mungkin dipanggil beberapa kali. Logika yang dipicu oleh onLoadError harus idempoten.

MyActivity.kt
Kotlin
// All components emit load errors. This example uses AccountOnboarding. // All components support onLoadError. class MyActivity : FragmentActivity() { private lateinit var accountOnboardingController: AccountOnboardingController override fun onCreate(savedInstanceState: Bundle?) { accountOnboardingController = embeddedComponentManager.createAccountOnboardingController(this) accountOnboardingController.listener = MyAccountOnboardingListener() } private fun openAccountOnboarding() { accountOnboardingController.show() } private inner class MyAccountOnboardingListener : AccountOnboardingListener { override fun onLoadError(error: Throwable) { println("Error loading account onboarding: ${error.message}") } } }

Minta akses Pratinjau pribadi

Masuk untuk meminta akses ke SDK seluler komponen tersemat Connect dalam pratinjau.

Jika tidak memiliki akun Stripe, Anda dapat mendaftar sekarang.

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