Aceitar um pagamento usando Stripe Elements e a API ChargesAPI Charges
Receba pagamentos online de clientes dos EUA e do Canadá.
API herdada
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
A API Charges não aceita os seguintes recursos, muitos deles obrigatórios para a conformidade com cartões de crédito:
- Comerciantes na Índia
- Bank requests for card authentication
- Strong Customer Authentication
Use nossos componentes de IU pré-configurados para criar um formulário de pagamentos que permita coletar com segurança os dados do cartão do cliente, sem manipular dados confidenciais. Os dados do cartão serão convertidos em um token que você pode enviar com segurança para seus servidores. O servidor usa esse token para criar uma cobrança.
Observação
As etapas deste guia estão totalmente implementadas no GitHub. Faça um clone do repositório e siga as instruções para executar o aplicativo de demonstração.
Configurar a StripeLado do clienteLado do servidor
No servidor
Esta integração exige que os endpoints do seu servidor se comuniquem com a API da Stripe. Use nossas bibliotecas oficiais para acessar a API da Stripe a partir do seu servidor:
Cliente
O SDK da Stripe para Android é de código aberto e totalmente documentado.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
Observação
Veja mais informações sobre o último lançamento de SDK e as versões anteriores na página Lançamentos no GitHub. Para receber notificações quando um novo lançamento for publicado, assista aos lançamentos do repositório.
Configure o SDK com sua chave publicável da Stripe, de modo que seja possível fazer solicitações à API Stripe, como em sua subcategoria Application
:
Criar seu formulário de pagamentoLado do cliente
Colete dados de cartão com segurança no cliente usando o CardInputWidget, um componente de IU inserível fornecido pelo SDK que coleta número do cartão, data de validade, CVC e código postal
O CardInputWidget executa validação e formatação imediatas.
Crie uma instância do componente de cartão e um botão Pagar, acrescentando o seguinte ao layout de sua página de checkout:
<?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>
Execute seu aplicativo e verifique se sua página de checkout mostra o componente de cartão e o botão de pagamento.
Criar um tokenLado do cliente
Quando o usuário toca no botão de pagamento, converta os dados do cartão coletados pelo CardInputWidget
em um token da Stripe. A “tokenização” garante que nenhum dado confidencial do cartão chegue ao seu servidor, mantendo sua integração compatível com PCI.
O código a seguir mostra como usar Stripe#createToken(). O método usa uma instância de Card
como primeiro parâmetro. O segundo parâmetro é uma instância de ApiResultCallback<Token> que o cliente invoca quando o pedido funciona ou falha. Quando a tokenização é concluída corretamente, envie o ID do token devolvido para seu servidor.
Envie o ID do token para o seu servidor a partir do cliente.
Criar uma cobrança com o tokenLado do servidor
A resposta à criação da cobrança será uma cobrança ou um erro com um código de erro. Se a resposta for bem-sucedida, você pode executar o pedido do cliente e mostrar uma página de finalização. Se não, mostre uma página de erro.
Testar sua integração
Se você conseguir inserir corretamente um cartão de teste no elemento do cartão, enviar ao servidor e o servidor criar a cobrança, a integração estará finalizada.
Você criou uma integração com a API Charges para começar a receber pagamentos por cartão imediatamente. Essa API não permite ampliar os negócios para fora dos EUA e do Canadá, mas também oferecemos opções de pagamentos mais robustas e globais com a API Payment Intents.