Passa al contenuto
Crea account
o
Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un account
Accedi
Inizia
Pagamenti
Ricavi
Per piattaforme e marketplace
Gestione del denaro
Risorse per sviluppatori
Panoramica
Inizia a utilizzare Connect
Concetti di base sull'integrazione
Esempi di integrazione
Gestione dell'account
Attivare gli account
Configurare le dashboard degli account
    Iniziare a utilizzare i componenti incorporati di Connect
      Avvio rapido
    Personalizzare i componenti incorporati di Connect
    Componenti incorporati di Connect supportati
    Personalizzazione della Dashboard Stripe
    Controlli della piattaforma per gli account della Dashboard Stripe
    Dashboard Express
Lavorare con tipi di account connessi
Elaborazione pagamenti
Accetta pagamenti
Inviare pagamenti agli account
Amministrazione piattaforma
Gestire la piattaforma Connect
Moduli fiscali per la piattaforma Connect
Pagina inizialePer piattaforme e marketplaceConfigure account Dashboards

Iniziare a utilizzare i componenti incorporati di Connect

Incorporare le funzionalità della dashboard nel sito web

Utilizza i componenti incorporati di Connect per aggiungere al tuo sito web le funzionalità della Dashboard per gli account connessi. Queste librerie e l’API di supporto ti consentono di concedere agli utenti l’accesso ai prodotti Stripe direttamente dalla Dashboard e dalle applicazioni mobili.

Configurare StripeConnect
Lato client
Lato server

Stripe utilizza un oggetto AccountSession per esprimere la tua intenzione di delegare l’accesso API al tuo account connesso.

L’API AccountSessions restituisce una chiave privata client che consente a un componente incorporato di accedere alle risorse di un account connesso come se facessi le chiamate API per suo conto.

Crea un oggetto AccountSession Server

L’app deve inviare una richiesta al server per ottenere la sessione dell’account. Al momento è supportata solo l’attivazione dell’account. Puoi creare un nuovo endpoint sul server che restituisce la chiave privata client all’app:

main.rb
Ruby
Python
PHP
Java
Node
Go
.NET
No results
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: { # We recommend disabling authentication for a better user experience when possible 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

Creare l’API Account Session

L’API Create Account Session determina l’accesso ai componenti e alle funzioni per i componenti incorporati di Connect. Stripe applica questi parametri a tutti i componenti che corrispondono alla sessione dell’account. Se la tua app supporta più ruoli utente, assicurati che i componenti e le funzioni abilitati per la sessione dell’account corrispondano al ruolo dell’utente corrente. Ad esempio, puoi abilitare la gestione dei rimborsi solo per gli amministratori del tuo sito, ma non per gli altri utenti. Per assicurarti che l’accesso al ruolo utente sia applicato, devi associare il ruolo utente del tuo sito ai componenti della sessione dell’account.

Installa l’SDK di StripeConnect Client

L’SDK per Android di Stripe è open source e completamente documentato.

Per installare l’SDK, aggiungi connect al blocco dependencies del tuo file app/build.gradle:

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

Nota

Per ulteriori informazioni sulla versione più recente e su quelle precedenti dell’SDK, consulta la pagina Releases su GitHub. Per ricevere una notifica quando viene pubblicata una nuova versione, imposta il controllo delle versioni per il repository.

Inizializza EmbeddedComponentManager Client

Crea un’istanza di EmbeddedComponentManager con la tua chiave pubblicabile e un lambda che recupera una chiave privata client chiamando il nuovo endpoint creato sul server. Per gestire le modifiche alla configurazione, mantieni l’istanza EmbeddedComponentManager in un ViewModel di attività o frammento.

MyActivityViewModel.kt
Kotlin
Java
No results
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 } }

Per creare un componente, chiama prima EmbeddedComponentManager.onActivityCreate() nel metodo onCreate dell’attività. Quindi, chiama il metodo di creazione appropriato in EmbeddedComponentManager per cui hai creato un’istanza. Restituisce un controller che puoi usare per presentare il componente nell’app.

MyActivity.kt
Kotlin
Java
No results
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
Lato client

Consulta la documentazione di riferimento del codice .

Personalizzare l’aspetto dei componenti incorporati di Connect

Il toolkit Figma di componenti incorporati per personalizzare l’interfaccia utente contiene tutti i componenti, i pattern comuni e un’applicazione esemplificativa. Puoi utilizzarlo per visualizzare e progettare interfacce utente incorporate sul tuo sito web.

Offriamo una serie di opzioni per personalizzare l’aspetto dei componenti incorporati di Connect. Queste personalizzazioni influiscono su pulsanti, icone e altri elementi del nostro sistema di progettazione.

Finestre popup necessarie

Alcuni comportamenti nei componenti incorporati, come l’autenticazione utente, devono essere presentati in una vista web autenticata. Non puoi personalizzare il componente incorporato per eliminare tali WebView.

È possibile impostare queste opzioni utilizzando Appearance durante l’inizializzazione di EmbeddedComponentManager.

MyActivityViewModel.kt
Kotlin
Java
No results
// 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, )

Quando specifichi le dimensioni dei caratteri, usa la dimensione dei caratteri non ridimensionata visualizzata per la classe di dimensioni predefinita del dispositivo. Il componente incorporato ridimensiona automaticamente la dimensione del carattere in base alle impostazioni del carattere per l’accessibilità dell’utente.

Consulta l’elenco completo delle opzioni di aspetto su Android.

Usa font personalizzati

Se usi caratteri personalizzati nell’app (ad esempio, da file .otf o .tff incorporati nel file binario dell’app), devi specificare i file dei caratteri in un CustomFontSource specificato nell’argomento customFonts durante l’inizializzazione di EmbeddedComponentManager. In questo modo, i componenti incorporati di Connect possono accedere ai file dei caratteri per visualizzarli correttamente.

Per una visualizzazione corretta, i caratteri indicati in appearance devono utilizzare un CustomFontSource specificato in EmbeddedComponentManager al momento dell’inizializzazione.

Consulta la documentazione di riferimento .

Aggiornare i componenti incorporati di Connect dopo l’inizializzazione

Chiama il metodo update per modificare l’aspetto dei componenti incorporati dopo l’inizializzazione:

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

Autenticazione

Offriamo una serie di API per gestire le sessioni degli account e le credenziali degli utenti nei componenti incorporati di Connect.

Aggiornare la chiave privata client

Nelle sessioni di lunga durata, la sessione della chiave privata client fornita inizialmente potrebbe scadere. Quando scade, utilizziamo automaticamente fetchClientSecret per recuperare una nuova chiave privata client e aggiornare la sessione. Non devi specificare alcun parametro aggiuntivo.

MyActivityViewModel.kt
Kotlin
Java
No results
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 }

Localizzazione

I componenti incorporati di Connect supportano le seguenti lingue:

LinguaCodice lingua
Bulgaro (Bulgaria)bg-BG
Cinese (semplificato)zh-Hans
Cinese (tradizionale - Hong Kong)zh-Hant-HK
Cinese (tradizionale - Taiwan)zh-Hant-TW
Croato (Croazia)hr-HR
Ceco (Cechia)cs-CZ
Danese (Danimarca)da-DK
Olandese (Paesi Bassi)nl-NL
Inglese (Australia)en-AU
Inglese (India)en-IN
Inglese (Irlanda)en-IE
Inglese (Nuova Zelanda)en-NZ
Inglese (Singapore)en-SG
Inglese (Regno Unito)en-GB
Inglese (Stati Uniti)en-US
Estone (Estonia)et-EE
Filippino (Filippine)fil-PH
Finlandese (Finlandia)fi-FI
Francese (Canada)fr-CA
Francese (Francia)fr-FR
Tedesco (Germania)de-DE
Greco (Grecia)el-GR
Ungherese (Ungheria)hu-HU
Indonesiano (Indonesia)id-ID
Italiano (Italia)it-IT
Giapponese (Giappone)ja-JP
Coreano (Corea del Sud)ko-KR
Lettone (Lettonia)lv-LV
Lituano (Lituania)lt-LT
Malese (Malaysia)ms-MY
Maltese (Malta)mt-MT
Norvegese bokmål (Norvegia)nb-NO
Polacco (Polonia)pl-PL
Portoghese (Brasile)pt-BR
Portoghese (Portogallo)pt-PT
Rumeno (Romania)ro-RO
Slovacco (Slovacchia)sk-SK
Sloveno (Slovenia)sl-SI
Spagnolo (Argentina)es-AR
Spagnolo (Brasile)es-BR
Spagnolo (America Latina)es-419
Spagnolo (Messico)es-MX
Spagnolo (Spagna)es-ES
Svedese (Svezia)sv-SE
Tailandese (Thailandia)th-TH
Turco (Turchia)tr-TR
Vietnamita (Vietnam)vi-VN

Autenticazione utente nei componenti incorporati di Connect

In genere, i componenti incorporati di Connect non richiedono l’autenticazione dell’utente. In alcuni casi i componenti incorporati di Connect richiedono che l’account connesso acceda con il proprio account Stripe prima di accedere al componente per eseguire le funzionalità necessarie, ad esempio inviare informazioni alla persona giuridica dell’account nel caso del componente di attivazione dell’account. Altri componenti potrebbero richiedere l’autenticazione all’interno del componente dopo la visualizzazione iniziale.

L’autenticazione è richiesta per gli account connessi in cui Stripe è responsabile della raccolta di informazioni aggiornate quando i requisiti cambiano. Per gli account connessi in cui sei responsabile della raccolta di informazioni aggiornate quando i requisiti lo presuppongono o cambiano, come gli account Custom, l’autenticazione è Stripe è controllata dalla funzione Sessione account disable_stripe_user_authentication. Ti consigliamo di implementare l’autenticazione a due fattori o misure di sicurezza equivalenti come best practice. Per le configurazioni degli account che supportano questa funzionalità, come Custom, ti assumi la responsabilità degli account connessi qualora non possano rimborsare i saldi negativi.

Componenti che richiedono l’autenticazione

Agli account connessi verrà mostrata una WebView autenticata nella tua applicazione. L’account connesso deve essere autenticato prima di poter continuare il proprio flusso di lavoro nella WebView.

Il flusso di autenticazione in hosting su Stripe mostra il nome, il colore e l’icona del tuo brand così come sono stati impostati nelle impostazioni di Connect e non utilizza l’aspetto e i caratteri personalizzati di Gestione componenti incorporati fino al completamento dell’autenticazione.

Limitazioni di Android

A causa di una limitazione delle API Android, i componenti incorporati non possono utilizzare caratteri personalizzati nella WebView autenticata, anche dopo il completamento dell’autenticazione.

Il seguente componente richiede l’autenticazione degli account connessi in determinati scenari:

  • Attivazione dell’account

Gestire gli errori di caricamento

Se un componente non viene caricato, puoi reagire all’errore implementando il metodo listener onLoadError del componente. A seconda della causa dell’errore, il metodo onLoadError potrebbe essere chiamato più volte. Qualsiasi logica attivata da un onLoadError deve essere idempotente.

MyActivity.kt
Kotlin
Java
No results
// 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}") } } }
Questa pagina è stata utile?
SìNo
  • Hai bisogno di aiuto? Contatta l'assistenza clienti.
  • Partecipa al nostro programma di accesso anticipato.
  • Dai un'occhiata al nostro registro delle modifiche.
  • Domande? Contattaci.
  • LLM? Leggi llms.txt.
  • Realizzato da Markdoc