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
Acerca de Stripe Payments
Actualiza tu integración
Análisis de pagos
Pagos por Internet
ResumenEncuentra tu caso de usoManaged Payments
Utiliza Payment Links
Crear una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Añadir métodos de pago
    Resumen
    Opciones de integración de los métodos de pago
    Gestiona los métodos de pago predeterminados en el Dashboard
    Tipos de método de pago
    Tarjetas
    Pagar con el saldo de Stripe
    Criptomonedas
    Adeudos bancarios
    Redireccionamientos bancarios
    Transferencias bancarias
    Transferencias de crédito (Sources)
    Compra ahora y paga después
      Affirm
      Afterpay / Clearpay
      Alma
      Billie
      Capchase Pay
      Klarna
        Aceptar un pago
        Responder a las disputas
      Kriya
      Mondu
      Pago en factura
      Scalapay
      SeQura
      Sunbit
      Zip
    Pagos en tiempo real
    Vales
    Monederos
    Habilitar métodos de pago locales por país
    Métodos de pago personalizados
Gestiona los métodos de pago
Proceso de compra más rápido con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Administrar múltiples divisas
Flujos de pagos personalizados
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Más allá de los pagos
Constituye tu empresa
Criptomonedas
Financial Connections
Climate
InicioPagosAdd payment methodsBuy now, pay laterKlarna

Aceptar un pago con Klarna

Descubre cómo aceptar Klarna, un método de pago internacional de «Compra ahora, paga después»

Partidas individuales unificadas con Klarna

Para optimizar las tasas de aprobación cuando te integres con Klarna, incluye datos de line_items para representar lo que hay en el carrito de un comprador. Para obtener acceso anticipado, consulta Partidas individuales de pago.

Cuando un cliente elige Klarna en tu aplicación, aparece una vista web para que autentique su pago. Una vez que se redirige al cliente a tu aplicación, puedes confirmar automáticamente si el pago se ha efectuado correctamente o ha dado error.

Nota

Antes de iniciar la integración, comprueba que tu cuenta sea compatible con Klarna en la configuración de los métodos de pago.

Configurar Stripe
Lado del servidor
Lado del cliente

Lado del servidor

Esta integración necesita puntos de conexión en tu servidor que se comuniquen con la API de Stripe. Usa nuestras librerías oficiales para acceder a la API de Stripe desde tu servidor:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Lado del cliente

El SDK para React Native es de código abierto y está plenamente documentado. Internamente, utiliza el SDK de iOS nativo y Android. Para instalar el SDK para React Native de Stripe, ejecuta uno de los siguientes comandos en el directorio del proyecto (en función del administrador de paquetes que utilices):

Command Line
yarn add @stripe/stripe-react-native

A continuación, instala otras dependencias necesarias:

  • Para iOS, navega hasta el directorio de ios y ejecuta pod install para asegurarte de instalar también las dependencias nativas necesarias.
  • Para Android, no hay más dependencias para instalar.

Nota

Recomendamos seguir la guía oficial de TypeScript para añadir compatibilidad con TypeScript.

Inicialización de Stripe

Para inicializar Stripe en tu aplicación React Native, ajusta tu pantalla de pago con el componente StripeProvider o usa el método de inicialización initStripe. Solo se requiere la clave publicable de la API en publishableKey. El siguiente ejemplo muestra cómo inicializar Stripe mediante el componente StripeProvider.

import { useState, useEffect } from 'react'; import { StripeProvider } from '@stripe/stripe-react-native'; function App() { const [publishableKey, setPublishableKey] = useState(''); const fetchPublishableKey = async () => { const key = await fetchKey(); // fetch key from your server here setPublishableKey(key); }; useEffect(() => { fetchPublishableKey(); }, []); return ( <StripeProvider publishableKey={publishableKey} merchantIdentifier="merchant.identifier" // required for Apple Pay urlScheme="your-url-scheme" // required for 3D Secure and bank redirects > {/* Your app code here */} </StripeProvider> ); }

Nota

Usa las claves de prueba de la API durante las pruebas y las tareas de desarrollo, y las claves del modo activo cuando publiques tu aplicación.

Crea un PaymentIntent
Lado del servidor
Lado del cliente

Stripe utiliza un objeto PaymentIntent para representar tu intención de cobrarle a un cliente y hace el seguimiento de los intentos de cobro y de los cambios en el estado del pago a lo largo del proceso de pago.

Lado del servidor

Primero, crea un PaymentIntent en tu servidor y especifica el importe que hay que cobrar y la divisa. Si ya tienes una integración con la API Payment Intents, añade klarna a la lista de tipos de métodos de pago para tu PaymentIntent.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_method_types[]"=klarna \ -d amount=1099 \ -d currency=eur

Lado del cliente

Un PaymentIntent incluye un client secret. Puedes utilizar el secreto de cliente en tu aplicación React Native para completar el proceso de pago de forma segura en lugar de especificar el objeto PaymentIntent completo. En tu aplicación, solicita un PaymentIntent desde tu servidor y guarda el secreto de cliente.

function PaymentScreen() { // ... const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ currency: 'eur', }), }); const {clientSecret} = await response.json(); return clientSecret; }; return <View>...</View>; }

Envía el pago a Stripe
Lado del cliente

Para enviar el pago a Stripe se necesita el secreto de cliente del PaymentIntent que creaste. Inclúyelo en tu llamada a confirmPayment:

import {Picker} from '@react-native-picker/picker'; import {confirmPayment} from '@stripe/stripe-react-native'; export default function MyPaymentScreen() { const handlePayPress = async () => { // Fetch the intent client secret from the backend. // See `fetchPaymentIntentClientSecret()`'s implementation above. const clientSecret = await fetchPaymentIntentClientSecret(); const {error, paymentIntent} = await confirmPayment(clientSecret, { paymentMethodType: 'Klarna' }, }); if (error) { console.log('Payment confirmation error', error.message); // Update UI to prompt user to retry payment (and possibly another payment method) } else if (paymentIntent) { Alert.alert('Success', `The payment was confirmed successfully!`); } };

Prueba la integración de Klarna

A continuación, tenemos datos de prueba especialmente elegidos para los países de los clientes actualmente aceptados. En un entorno de prueba, Klarna aprueba o rechaza una transacción en función de la dirección de correo electrónico proporcionada.

AprobadoDenegado
Fecha de nacimiento10-07-197003/05/1994
NombreModo de pruebaJohn
ApellidosPerson-ausnow
CalleWharf StSilverwater Rd.
Número de casa41-5
Código postal48772128
CiudadPort DouglasSilverwater
RegiónQLDNSW
Teléfono+61473752244+61473763254
Correo electrónicocustomer@email.aucustomer+denied@email.au

Autenticación en dos pasos

Cualquier número de seis dígitos es un código válido de autenticación en dos pasos. Utiliza 999999 para que la autenticación no se complete.

Método de reembolso

En el flujo de Klarna, puedes usar los siguientes valores de prueba para probar varios tipos de reembolso:

TipoValor
Adeudo directoDE11520513735120710131
Transferencia bancariaBanco de demostración
Tarjeta de crédito
  • Número: 4111 1111 1111 1111
  • CVV: 123
  • Vencimiento: cualquier fecha válida en el futuro
Tarjeta de débito
  • Número: 4012 8888 8888 1881
  • CVV: 123
  • Vencimiento: cualquier fecha válida en el futuro

OpcionalAutorización y captura separadas

OpcionalGestiona eventos posteriores al pago

OpcionalPersonaliza la página de pago de Klarna

OpcionalAñade partidas al PaymentIntent

Pagos fallidos

Klarna tiene en cuenta varios factores a la hora de decidir si acepta o rechaza una transacción (por ejemplo, el tiempo que el comprador lleva utilizando Klarna, el importe pendiente de pago del cliente, el valor del pedido actual).

Cuando el cliente elige un método de pago diferido, Klarna lleva a cabo una evaluación del riesgo antes de aceptar la transacción. Klarna podría rechazar la transacción debido a un resultado insatisfactorio de la evaluación de riesgos, al importe de la transacción o a que el cliente tenga una gran deuda pendiente. Por ello, te recomendamos que presentes otras opciones de pago como card en tu flujo del proceso de compra. En estos casos, el PaymentMethod se separa y el estado del objeto PaymentIntent pasa automáticamente a requires_payment_method.

Los clientes deben efectivizar el pago en el transcurso de 48 horas desde que se les redirige al sitio de Klarna. Si no se realiza ninguna acción después de 48 horas, el PaymentMethod se separa y el estado del objeto PaymentIntent pasa automáticamente de requires_action a requires_payment_method.

En estos casos, informa a tus clientes que deben intentarlo de nuevo con una opción de pago diferente de tu flujo de proceso de compra.

Límites de velocidad de Klarna

Las peticiones de la API a Klarna están sujetas a otros límites de velocidad más allá de los límites de velocidad de toda la API de Stripe. Estos límites pueden variar en función de la forma de las peticiones de la API que realices. En general, si realizas más de 360 peticiones por minuto, es posible que veas alguna limitación de frecuencia en forma de respuestas con el código de estado HTTP 400 o 402. Contáctanos para obtener más detalles si te preocupa que tu consumo pueda alcanzar estos niveles, ya que Klarna puede aumentar estos límites caso por caso.

Mensajes de error

Los errores en los pagos de Klarna normalmente devuelven uno de los siguientes códigos de fallo. Estos códigos se muestran en el objeto de la API last_payment_error.

Precaución

Antes de la versión de la API 2023-08-16, cada error de Klarna se informaba como payment_intent_authentication_failure. Asegúrate de que la versión de la API esté actualizada para ver los errores detallados que se indican a continuación.

Código de falloExplicación
payment_method_customer_declineEl cliente ha cancelado el proceso de compra en la página de Klarna
payment_method_provider_declineKlarna ha rechazado el pago del cliente
payment_intent_payment_attempt_expiredEl cliente nunca completó el proceso de compra en la página de Klarna y la sesión de pago ha caducado
payment_method_not_availableSe ha producido un error inesperado al intentar utilizar Klarna
¿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