Aceptar pagos con Stripe Elements y la API ChargesAPI Charges
Acepta pagos electrónicos de clientes de Estados Unidos y Canadá.
API heredada
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
La API Charges no admite las siguientes funciones, muchas de las cuales son necesarias para cumplir con la normativa de las tarjetas de crédito:
- Comerciantes de India
- Bank requests for card authentication
- Strong Customer Authentication
Usa nuestro componente de interfaz de usuario predefinido para crear un formulario de pago que te permita recopilar de forma segura los datos de tarjeta del cliente sin tener que gestionar los datos confidenciales. Los datos de la tarjeta se convierten luego en un Token representativo que puedes enviar de manera segura a tus servidores. Tu servidor puede utilizar ese token para crear un cargo.
Nota
Todos los pasos de esta guía se han implementado por completo en GitHub. Clona el repositorio y sigue las instrucciones para ejecutar la aplicación de demostración.
Configura StripeLado del clienteLado del servidor
Lado del servidor
Esta integración necesita puntos de conexión en tu servidor que se comuniquen con la API de Stripe. Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu servidor:
Lado del cliente
El SDK para Android de Stripe es de código abierto y está completamente documentado.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
Nota
Para conocer detalles de la última versión y de versiones anteriores del SDK, consulta la página Versiones de GitHub. Para recibir una notificación cuando se publique una nueva versión, mira las versiones del repositorio.
Configura el SDK con tu clave publicable de Stripe para que pueda hacer solicitudes a la API de Stripe, así como en tu subclase Application
:
Crea tu formulario de pagoLado del cliente
Recopila información de la tarjeta del cliente de forma segura con CardInputWidget, un componente de interfaz de usuario insertable proporcionado por el SDK que guarda el número de tarjeta, la fecha de caducidad, el CVC y el código postal.
CardInputWidget lleva a cabo la validación y el formateo sobre la marcha.
Crea una instancia del componente de tarjeta y un botón Pagar al añadir lo siguiente al diseño de tu página de finalización de compra:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_checkout" tools:context=".CheckoutActivity"> <!-- ... --> <com.stripe.android.view.CardInputWidget android:id="@+id/cardInputWidget" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"/> <Button android:text="Pay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/payButton" android:layout_marginTop="20dp" app:layout_constraintTop_toBottomOf="@+id/cardInputWidget" app:layout_constraintStart_toStartOf="@+id/cardInputWidget" app:layout_constraintEnd_toEndOf="@+id/cardInputWidget"/> <!-- ... --> </androidx.constraintlayout.widget.ConstraintLayout>
Ejecuta tu aplicación y asegúrate de que, en la página de finalización de compra, aparezca el componente de tarjeta y el botón de pago.
Crea un tokenLado del cliente
Cuando el usuario toca el botón de pago, convierte los datos de tarjeta reunidos por CardInputWidget
en un token de Stripe. La tokenización garantiza que los datos confidenciales de la tarjeta no entren en contacto con tu servidor, de manera que tu integración siga cumpliendo con la normativa PCI.
El siguiente código muestra cómo usar Stripe#createToken(). El método toma una instancia Card
como primer parámetro. El segundo parámetro es la instancia ApiResultCallback<Token> que el cliente invoca cuando el token es correcto o da error. Cuando la tokenización se completa correctamente, debes enviar el ID del token devuelto a tu servidor.
Envía el ID del token a tu servidor desde el cliente.
Crea un cargo con el tokenLado del servidor
La respuesta al crear un cargo será un cargo o un error con un código de error. Si la respuesta se realiza correctamente, puedes completar el pedido del cliente y mostrarle en la pantalla que se ha realizado correctamente. De lo contrario, puedes mostrarle un error.
Prueba tu integración
Si puedes introducir de manera fiable una tarjeta de prueba en el Element card, envíalo al servidor y comprueba que tu servidor ha creado el cargo. De ser así, la integración habrá terminado.
Has creado una integración con la API Charges para empezar a aceptar pagos con tarjeta de inmediato. Esta API no da soporte a empresas en expansión ni a clientes fuera de Estados Unidos y Canadá. Para contar con opciones de pagos internacionales más sólidas, descubre cómo aceptar pagos con la API Payment Intents.