Criar uma página de pagamentos
Personalize logotipo, imagens e cores.
Compatibilidade pré-integrada com Apple Pay e Google Pay.
Veja a demonstração de um exemplo hospedado.
Aceitar um pagamento
Observação
Consulte o perfil da sua plataforma para determinar se a opção Direct Charges ou Destination Charges é recomendada para a sua empresa.
Cobranças de destino
Neste exemplo, a plataforma é um marketplace de aluguel residencial que precisa criar pagamentos para proprietários que alugam suas propriedades. Você também pode usar destination charges em outros aplicativos.
Crie uma sessão do Checkout Cliente e servidor
A Sessão do Checkout controla o que seu cliente vê no formulário de pagamento integrável, como itens de linha, valor, moeda e formas de pagamento aceitas.
Adicione um botão de checkout ao seu site para chamar um endpoint do lado do servidor e criar uma Sessão do Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
No servidor, faça a chamada a seguir para a API da Stripe. Depois de criar uma Sessão do Checkout, redirecione o cliente para o URL retornado na resposta.
curl https://api.stripe.com/v1/checkout/sessions \ -u "
:" \ -d "line_items[0][price]"=sk_test_4eC39HqLyjWDarjtT1zdp7dc\ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"={{PRICE_ID}}\ -d mode=payment \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/failure"{{CONNECTED_ACCOUNT_ID}}
payment_intent_data[transfer_data][destination]
– Este argumento indica que é uma cobrança de destino. Uma cobrança de destino significa que a cobrança é processada na plataforma e, em seguida, os fundos são imediatamente e automaticamente transferidos para o saldo pendente da conta conectada. Para o nosso exemplo de aluguel residencial, queremos construir uma experiência na qual o cliente pague por meio da plataforma, e o proprietário receba o pagamento pela plataforma.line_items
– Este argumento representa os itens que o cliente está comprando e que serão exibidos na interface do usuário hospedada pela Stripe.success_url
– Este argumento redireciona um usuário após a conclusão de um pagamento.cancel_url
– Este argumento redireciona um usuário que clicou em Cancelar.payment_intent_data[application_fee_amount]
– Este argumento especifica o valor planejado pela sua plataforma para retirar da transação. O valor total da cobrança é imediatamente transferido da plataforma para a conta conectada que é especificada portransfer_data[destination]
após a captura da cobrança. Oapplication_fee_amount
é transferido de volta para a plataforma, e a tarifa da Stripe é deduzida do valor da plataforma.
Quando realiza cobranças de destino, o Checkout usa as configurações de marca da conta da plataforma. Consulte a seção Personalizar a marca para obter mais informações.
Observação
Esta Sessão cria uma cobrança de destino. Se você precisar controlar o cronograma de transferências ou precisar transferir fundos de um único pagamento para várias partes, use cobranças e transferências separadas.
Execução Lado do servidor
Após a conclusão do pagamento, é preciso gerenciar qualquer execução necessária. Uma empresa de aluguel residencial que exige pagamento antecipado, por exemplo, conectaria o proprietário ao locatário após um pagamento realizado.
Cuidado
Não dependa apenas do redirecionamento ao parâmetro success_url
para a execução de compras:
- Usuários mal-intencionados podem acessar diretamente o
success_url
sem pagar e acessar seus produtos ou serviços. - Os clientes podem não acessar o
success_url
após o pagamento. É possível que a guia do navegador seja fechada antes do redirecionamento.
Configure um endpoint de webhook (para eventos de sua conta) no Dashboard.
Em seguida, crie um endpoint de HTTP no seu servidor para monitorar pagamentos concluídos para habilitar seus vendedores ou prestadores de serviços a processar compras. Certifique-se de substituir a chave secreta do endpoint (whsec_...
) no exemplo com sua chave.
# Using Sinatra. require 'sinatra' require 'stripe' set :port, 4242 # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
# If you are testing your webhook locally with the Stripe CLI you # can find the endpoint's secret by running `stripe listen` # Otherwise, find your endpoint's secret in your webhook settings in # the Developer Dashboard endpoint_secret = 'whsec_...' post '/webhook' do payload = request.body.read sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil # Verify webhook signature and extract the event. # See https://stripe.com/docs/webhooks#verify-events for more information. begin event = Stripe::Webhook.construct_event( payload, sig_header, endpoint_secret ) rescue JSON::ParserError => e # Invalid payload. status 400 return rescue Stripe::SignatureVerificationError => e # Invalid Signature. status 400 return end if event['type'] == 'checkout.session.completed' session = event['data']['object'] handle_completed_checkout_session(session) end status 200 end def handle_completed_checkout_session(session) # Fulfill the purchase puts session.to_s end'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
Saiba mais no nosso guia de execução para o Checkout.
Testar webhooks localmente
Use a Stripe CLI para testar webhooks localmente.
Se você ainda não instalou a Stripe CLI em sua máquina, instale-a agora.
Para fazer login, execute
stripe login
na linha de comando e siga as instruções.Por fim, para permitir que seu host local receba um evento simulado em sua conta conectada, execute
stripe listen --forward-to localhost:{PORT}/webhook
em uma janela do terminal e executestripe trigger --stripe-account={{CONNECTED_STRIPE_ACCOUNT_ID}} checkout.session.completed
(ou acione qualquer outro evento aceito) em outro.
Contestações
Como comerciante de liquidação das cobranças, sua plataforma é responsável pelas contestações. Leia com atenção as práticas recomendadas para responder a contestações.
Criar uma assinatura
Você pode criar pagamentos recorrentes em contas conectadas com assinaturas. Assinaturas são criadas com cobranças diretas. Também é possível especificar application_fee_percent para direcionar uma porcentagem do pagamento de cada fatura para a sua plataforma.
A página de Checkout usa as configurações de marca da conta conectada, incluindo nome da empresa, logotipo e cor. Veja mais informações na seção Personalizar marca.
Observação
Você pode incluir itens de linha avulsos e planos recorrentes em uma mesma Sessão do Checkout. Se o desconto application_fee_percent
for especificado, ele será aplicado a itens avulsos e recorrentes.
Crie uma sessão do Checkout Cliente e servidor
Uma Sessão do Checkout controla o que seu cliente vê na página de pagamentos hospedada pela Stripe, como itens de linha, valor, moeda e formas de pagamento aceitas.
Adicione um botão de checkout ao seu site para chamar um endpoint do lado do servidor e criar uma Sessão do Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
No servidor, faça a chamada a seguir para a API da Stripe. Depois de criar uma Sessão do Checkout, redirecione o cliente para o URL retornado na resposta.
curl https://api.stripe.com/v1/checkout/sessions \ -u
: \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d "subscription_data[application_fee_percent]"=10 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel" \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"sk_test_4eC39HqLyjWDarjtT1zdp7dc
Personalizar a marca
Sua plataforma e suas contas conectadas com acesso aoStripe Dashboard podem usar as Configurações de marca para personalizar as marcas na página de pagamentos. Para Destination Charges, o Checkout usa as configurações de marca da conta da plataforma. Para Direct Charges e Destination Charges com on_behalf_of
, o Checkout usa as configurações de marca da conta conectada. As plataformas podem definir as configurações de marca de contas conectadas que tenham acesso ao Express Dashboard ou que não tenham acesso a um dashboard hospedado pela Stripe usando a API Accounts.
A API account update aceita os seguintes parâmetros para a marca:
icon
- Exibido próximo ao nome da empresa, no cabeçalho da página de Checkout.logo
- se for especificado, é exibido no lugar do ícone e do nome da empresa, no cabeçalho da página de Checkout.primary_color
- Cor de fundo da página de Checkout.secondary_color
- Cor dos botões da página de Checkout.
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u "
:" \ -d "settings[branding][icon]"=file_123 \ -d "settings[branding][logo]"=file_456 \ --data-urlencode "settings[branding][primary_color]"="#663399" \ --data-urlencode "settings[branding][secondary_color]"="#4BB543"sk_test_4eC39HqLyjWDarjtT1zdp7dc
Ativar formas de pagamento
Veja as configurações de formas de pagamento e ative as que pretende aceitar. Pagamentos com cartão, Google Pay e Apple Pay ficam ativados por padrão, mas você pode ativar e desativar as formas de pagamento conforme a necessidade.
Antes da exibição das formas de pagamento, a Stripe avalia a moeda, as restrições e outros parâmetros dessas formas de pagamento para criar a lista das que são aceitas. Priorizamos as que aumentam a conversão e são mais relevantes para a moeda e a localização do cliente. As formas de pagamento de menor prioridade são ocultas em um menu de estouro.