Ir a contenido
Crea una cuenta
o
inicia sesión
Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuenta
Iniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
Resumen
Empieza a usar Connect
Fundamentos de la integración
Integraciones de ejemplo
Gestión de cuentas
Haz el onboarding de las cuentas
Configura los Dashboards de la cuenta
    Empieza a usar los componentes integrados de Connect
      Inicio rápido
    Personaliza los componentes integrados de Connect
    Componentes integrados de Connect compatibles
    Personalización del Dashboard de Stripe
    Controles de plataforma para cuentas de Stripe Dashboard
    Dashboard de cuentas Express
Trabaja con tipos de cuentas conectadas
Procesamiento de pagos
Aceptar pagos
Transferir a cuentas
Administración de la plataforma
Gestiona tu plataforma Connect
Formularios fiscales para tu plataforma Connect
InicioPlataformas y marketplacesConfigure account Dashboards

Empieza a usar los componentes integrados de Connect

Descubre cómo integrar las funciones del Dashboard en tu sitio web.

Utiliza los componentes integrados de Connect para añadir las funciones del Dashboard de cuentas conectadas a tu sitio web. Estas bibliotecas y su API de soporte te permiten otorgar a tus usuarios acceso a los productos de Stripe directamente en tu Dashboard y aplicaciones móviles.

Configurar Stripe Connect
Lado del cliente
Lado del servidor

Stripe utiliza una AccountSession para expresar tu intención de delegar el acceso a la API a tu cuenta conectada.

La API de AccountSessions devuelve un secreto de cliente que permite que un componente integrado acceda a los recursos de una cuenta conectada como si estuvieras haciendo las llamadas a la API para ellos.

Crea una AccountSession Servidor

La aplicación debe iniciar una solicitud a tu servidor para obtener la sesión de la cuenta. Actualmente, solo se admite el onboarding de cuentas. Puedes crear un nuevo punto de conexión en tu servidor que devuelva el secreto de cliente a la aplicación:

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: { # 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

Crear una API Account Session

La API Create Account Session determina el acceso a los componentes y funciones para los componentes integrados de Connect. Stripe aplica estos parámetros para cualquier componente que corresponda a la sesión de la cuenta. Si tu aplicación acepta varios roles de usuario, asegúrate de que los componentes y las funciones que están habilitados para esa sesión de cuenta correspondan al rol del usuario actual. Por ejemplo, puedes habilitar la gestión de reembolsos solo para los administradores de tu sitio, pero no para otros usuarios. Para asegurarse de que se aplica el acceso a la función de usuario, debes asignar la función de usuario de tu sitio a los componentes de la sesión de la cuenta.

Instala el SDK de StripeConnect Client

El SDK para iOS de Stripe es de código abierto, está plenamente documentado y es compatible con aplicaciones que admiten iOS 15 o posterior.

Para instalar el SDK, sigue estos pasos:

  1. En Xcode, elige Archivo > Añadir dependencias de paquetes… e introduce https://github.com/stripe/stripe-ios-spm como la URL del repositorio.
  2. Selecciona el número de versión más reciente en nuestra página de versiones.
  3. Añade el producto StripeConnect al objetivo de tu aplicación.

Nota

Para obtener más información sobre la versión más reciente y sobre versiones anteriores del SDK, consulta la página Versiones en GitHub. Para recibir notificaciones cuando se publica una nueva versión, consulta las versiones del repositorio.

Configurar la autorización de la cámara Client-side

El SDK para iOS de Stripe Connect necesita acceso a la cámara del dispositivo para capturar documentos de identidad. Para permitir que tu aplicación solicite permisos de cámara, haz lo siguiente:

  1. Abre la Info.plist de tu proyecto en Xcode.
  2. Añade la clave NSCameraUsageDescription.
  3. Añade un valor de cadena que explique a los usuarios por qué la aplicación requiere permisos de cámara, por ejemplo:

Esta aplicación utiliza la cámara para hacer una foto de tus documentos de identidad.

Consulta la documentación de Apple para obtener más información sobre cómo solicitar la autorización de la cámara.

Inicializa EmbeddedComponentManager Client

Establece tu clave publicable usando StripeAPI.shared y crea una instancia de EmbeddedComponentManager con un cierre que recupere el secreto de cliente llamando al nuevo punto de conexión que hayas creado en tu servidor. Para crear un componente, llama al método correspondiente en el EmbeddedComponentManager para el que creaste una instancia anteriormente. Esto devuelve un controlador que puedes usar para presentarlo en la aplicación.

MyViewController.swift
@_spi(PrivateBetaConnect) import StripeConnect import UIKit class MyViewController: UIViewController { let errorView: UIView func fetchClientSecret() async -> String? { let url = URL(string: "https://{{YOUR_SERVER}}/account_session")! var request = URLRequest(url: url) request.httpMethod = "POST" do { // Fetch the AccountSession client secret let (data, _) = try await URLSession.shared.data(for: request) let json = try JSONSerialization.jsonObject(with: data) as? [String : Any] errorView.isHidden = true return json?["client_secret"] as? String } catch let error { // Handle errors on the client side here print("An error occurred: \(error)") errorView.isHidden = false return nil } } override func viewDidLoad() { super.viewDidLoad() // This is your test publishable API key. STPAPIClient.shared.publishableKey = "{{PUBLISHABLE_KEY}}", let embeddedComponentManager = EmbeddedComponentManager( fetchClientSecret: fetchClientSecret ) let controller = embeddedComponentManager.createAccountOnboardingController() controller.present(from: self) } }

Configure the Embedded Component Manager
Lado del cliente

Consulta la referencia de código .

Personaliza el aspecto de los componentes integrados de Connect

El conjunto de herramientas de interfaz de usuario Figma para componentes incorporados contiene todos los componentes, patrones comunes y una aplicación de ejemplo. Puedes usarlo para visualizar y diseñar interfaces de usuario integradas en tu sitio web.

Ofrecemos un conjunto de opciones para personalizar el aspecto de los componentes integrados de Connect. Estas personalizaciones afectan los botones, los iconos y otros acentos de nuestro sistema de diseño.

Ventanas emergentes necesarias

Algunos comportamientos de los componentes integrados, como la autenticación de usuarios, deben presentarse en una vista web autenticada. No se puede personalizar el componente incrustado para eliminar dichas WebViews.

Puedes configurar estas opciones usando EmbeddedComponentManager.Appearance al inicializar EmbeddedComponentManager.

MyViewController.swift
func fetchClientSecret() async -> String? { let url = URL(string: "https://{{YOUR_SERVER}}/account_session")! var request = URLRequest(url: url) request.httpMethod = "POST" do { let (data, _) = try await URLSession.shared.data(for: request) let json = try JSONSerialization.jsonObject(with: data) as? [String : Any] return json?["client_secret"] as? String } catch { return nil } } // Specify custom fonts var customFonts: [CustomFontSource] = [] let myFont = UIFont(name: "My Font", size: 16)! let fontUrl = Bundle.main.url(forResource: "my-font-2", withExtension: "woff")! do { let customFontSource = try CustomFontSource(font: myFont, fileUrl: fontUrl) customFonts.append(customFontSource) } catch { print("Error loading custom font: \(error)") } // Customize appearance var appearance = EmbeddedComponentManager.Appearance() appearance.typography.fontfont.base = myFont appearance.typography.fontSizeBase = 16 // Unscaled font size appearance.colors.primary = UIColor { traitCollection in if traitCollection.userInterfaceStyle == .dark { UIColor(red: 0.455, green: 0.424, blue: 1.000, alpha: 1.0) } else { UIColor(red: 0.404, green: 0.365, blue: 1.000, alpha: 1.0) } } STPAPIClient.shared.publishableKey = "{{PUBLISHABLE_KEY}}", let embeddedComponentManager = EmbeddedComponentManager( appearance: appearance, fonts: customFonts, fetchClientSecret: fetchClientSecret )

Los colores de apariencia que utilizan proveedores dinámicos se aplican automáticamente al componente integrado de Connect cuando se actualiza su UITraitCollection, incluyendo el modo oscuro y el contraste de accesibilidad. La apariencia predeterminada no incluye colores en modo oscuro; por lo tanto, debes especificar una apariencia con colores dinámicos en EmbeddedComponentManager para aceptar el modo oscuro en tu aplicación.

Al especificar los tamaños de fuente, usa el tamaño de fuente sin escalar que se muestra para la clase de tamaño predeterminada del dispositivo. El componente integrado escala automáticamente el tamaño de la fuente en función de su UITraitCollection.

Consulta la lista completa de opciones de apariencia en iOS.

Usar fuentes personalizadas

Si usas fuentes personalizadas en tu aplicación (por ejemplo, de archivos .otf o .tff integrados en el binario de tu aplicación), debes especificar los archivos de fuentes en un CustomFontSource pasado al argumento fonts al inicializar EmbeddedComponentManager. Esto permite que los componentes integrados de Connect accedan a los archivos de fuentes para renderizarlas correctamente.

Las fuentes especificadas en appearance deben usar una fuente de sistema compatible o una CustomFontSource especificada en EmbeddedComponentManager en la inicialización para renderizarse correctamente.

Consulta la documentación de referencia .

Actualiza los componentes integrados de Connect después de la inicialización

Llama al método update para cambiar la apariencia de los componentes integrados después de la inicialización:

MyViewController.swift
var appearance = EmbeddedComponentManager.Appearance() appearance.colors.primary = UIColor.red manager.update(appearance: appearance)

Autenticación

Ofrecemos un conjunto de API para gestionar las sesiones de la cuenta y las credenciales de usuario en los componentes integrados de Connect.

Actualizar el secreto de cliente

En sesiones de larga duración, podría caducar la sesión del secreto de cliente que se proporcionó inicialmente. Cuando caduca, usamos automáticamente fetchClientSecret para recuperar un nuevo secreto de cliente y actualizar la sesión. No es necesario que especifiques ningún otro parámetro.

MyViewController.swift
func fetchClientSecret() async -> String? { var request = URLRequest(url: URL(string: "https://{{YOUR_SERVER}}/account_session")!) request.httpMethod = "POST" do { let (data, _) = try await URLSession.shared.data(for: request) let json = try JSONSerialization.jsonObject(with: data) as? [String : Any] return json?["client_secret"] as? String } catch let error { return nil } } STPAPIClient.shared.publishableKey = "{{PUBLISHABLE_KEY}}", let embeddedComponentManager = EmbeddedComponentManager( fetchClientSecret: fetchClientSecret )

Localización

Los componentes integrados de Connect aceptan las siguientes configuraciones regionales:

IdiomaCódigo de configuración regional
Búlgaro (Bulgaria)bg-BG
Chino (simplificado)zh-Hans
Chino (tradicional de Hong Kong)zh-Hant-HK
Chino (tradicional de Taiwán)zh-Hant-TW
Croata (Croacia)hr-HR
Checo (República Checa)cs-CZ
Danés (Dinamarca)da-DK
Neerlandés (Países Bajos)nl-NL
Inglés (Australia)en-AU
Inglés (India)en-IN
Inglés (Irlanda)en-IE
Inglés (Nueva Zelanda)en-NZ
Inglés (Singapur)en-SG
Inglés (Reino Unido)en-GB
Inglés (Estados Unidos)en-US
Estonio (Estonia)et-EE
Filipino (Filipinas)fil-PH
Finlandés (Finlandia)fi-FI
Francés (Canadá)fr-CA
Francés (Francia)fr-FR
Alemán (Alemania)de-DE
Griego (Grecia)el-GR
Húngaro (Hungría)hu-HU
Indonesio (Indonesia)id-ID
Italiano (Italia)it-IT
Japonés (Japón)ja-JP
Coreano (Corea del Sur)ko-KR
Letón (Letonia)lv-LV
Lituano (Lituania)lt-LT
Malayo (Malasia)ms-MY
Maltés (Malta)mt-MT
Noruego bokmål (Noruega)nb-NO
Polaco (Polonia)pl-PL
Portugués (Brasil)pt-BR
Portugués (Portugal)pt-PT
Rumano (Rumania)ro-RO
Eslovaco (Eslovaquia)sk-SK
Esloveno (Eslovenia)sl-SI
Español (Argentina)es-AR
Español (Brasil)es-BR
Español (Latinoamérica)es-419
Español (México)es-MX
Español (España)es-ES
Sueco (Suecia)sv-SE
Tailandés (Tailandia)th-TH
Turco (Turquía)tr-TR
Vietnamita (Vietnam)vi-VN

Autenticación de usuarios en los componentes integrados de Connect

Por lo general, los componentes integrados de Connect no necesitan la autenticación de usuario. En algunas situaciones, los componentes integrados de Connect requieren que la cuenta conectada inicie sesión con su cuenta de Stripe antes de acceder al componente para proporcionar las funciones necesarias (por ejemplo, escribir información a la entidad jurídica de la cuenta en el caso del componente account onboarding). Es posible que otros componentes requieran autenticación dentro del componente después de que se rendericen inicialmente.

La autenticación es obligatoria para las cuentas conectadas en las que Stripe es responsable de recopilar información actualizada cuando cambian los requisitos. Para las cuentas conectadas en las que eres responsable de recopilar información actualizada cuando los requisitos vencen o cambian, como las cuentas Custom, la autenticación de Stripe se controla mediante la función de sesión de cuenta de disable_stripe_user_authentication. Recomendamos implementar 2FA o medidas de seguridad equivalentes como una práctica recomendada. Para las configuraciones de cuenta que admiten esta función, como Custom, asumes la responsabilidad de las cuentas conectadas si no pueden devolver los saldos negativos.

Componentes que requieren autenticación

A las cuentas conectadas se les mostrará un WebView autenticado dentro de tu aplicación. La cuenta conectada debe autenticarse antes de poder continuar su flujo de trabajo dentro de WebView.

El flujo de autenticación alojado en Stripe muestra el nombre, el color y el icono de tu marca tal y como están establecidos en la configuración de Connect y no utiliza tu aspecto personalizado ni las fuentes del Administrador de componentes integrados hasta que se completa la autenticación.

El siguiente componente requiere que las cuentas conectadas se autentiquen en determinadas situaciones:

  • Onboarding de la cuenta

Gestiona los errores de carga

Si un componente no se carga, puedes reaccionar al error implementando el método delegado didFailLoadWithError del componente. Dependiendo de la causa del error, se puede llamar varias veces al método didFailLoadWithError. Cualquier lógica activada por un didFailLoadWithError debe ser idempotente.

MyViewController.swift
// All components emit load errors. This example uses AccountOnboarding. // All components support didFailLoadWithError. class MyViewController: UIViewController, AccountOnboardingControllerDelegate { func openAccountOnboarding() { let accountOnboardingController = embeddedComponentManager.createAccountOnboardingController(); accountOnboardingController.delegate = self accountOnboardingController.present(from: self) } // MARK: - AccountOnboardingControllerDelegate func accountOnboarding(_ accountOnboarding: AccountOnboardingController, didFailLoadWithError error: Error) { print("Account onboarding failed to load with error '\(error)'") } }
¿Te ha sido útil la página?
SíNo
¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
Únete a nuestro programa de acceso anticipado.
Echa un vistazo a nuestro registro de cambios.
¿Tienes alguna pregunta? Ponte en contacto con el equipo de ventas.
¿LLM? Lee llms.txt.
Con tecnología de Markdoc