Avançar para o conteúdo principal

Inicie Payment for Stripe a partir da sua aplicação (esquemas de URL).

Resumindo: a sua aplicação ou website abre um URL payment://, Payment for Stripe processa o pagamento e, em seguida, abre o seu URL de retorno com o resultado. Sem SDK. Sem trabalho no servidor. Funciona da mesma forma no iPhone e no Android, com algumas diferenças descritas abaixo.

A referência completa encontra-se em paymentforstripe.com/api.

Como funciona

  1. A sua aplicação abre uma URL payment:// com parâmetros.
  2. Payment for Stripe inicia e configura a venda. O comerciante recebe o pagamento com um leitor, Tap to Pay) ou com um cartão dactilografado.
  3. Ao concluir, a aplicação abre o URL callback com o resultado adicionado como parâmetros de consulta.

O comerciante precisa de estar ligado. Se um link chegar enquanto outra cobrança estiver em curso, a aplicação irá rejeitá-lo e o seu retorno de chamada receberá error=charge_in_progress.

Criar uma cobrança: pagamento://novo

Um pagamento único no valor que definir.

Nome Tipo Obrigatório Descrição
amount inteiro Sim Valor na unidade mais pequena da moeda, superior a 0. 1000 = $10,00.
currency fio Não Código ISO de três letras, como usd ou eur. Se omitir este código, a aplicação utilizará a moeda já configurada.
description fio Não Descrição da cobrança. Codifique-a em URL.
customer fio Não ID de cliente Stripe existente ( cus_…). customer_id também funciona. Quando definido, email e name são ignorados.
email fio Não E-mail do cliente. Cria um novo cliente.
name fio Não Nome do cliente. Codifique-o em URL. Cria um novo cliente.
metadata fio Não Objeto JSON codificado em URL contendo pares chave-valor, adicionado ao pagamento. Aplicam-se as limitações de metadados do Stripe.
callback fio Não URL a abrir quando a promoção terminar.
autoprocess booleano Não true ignora o teclado e inicia o carregamento imediatamente. O valor por defeito false.
auto_return booleano Não true abre a função de callback assim que o resultado é conhecido. O valor por defeito é false: a função de callback aguarda até que o comerciante feche o ecrã de resultados.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

Um link com um amount em falta, zero ou não numérico será ignorado.

Crie uma fatura a partir do seu catálogo: payment://cart

Preenche o carrinho com os preços do teu catálogo de produtos Stripe. O comerciante efetua então a cobrança normalmente, e a venda é guardada no Stripe como uma fatura paga com esses artigos. Não envia uma fatura por e-mail ao seu cliente.

Nome Tipo Obrigatório Descrição
prices fio Sim Pares price_id:quantity separados por vírgula, como por exemplo price_abc:2,price_xyz:1. line_items também funcionam.
coupon fio Não Código do cupão Stripe para aplicar no carrinho.
customer fio Não ID de cliente Stripe existente. customer_id também funciona.
email fio Não E-mail do cliente. Cria um novo cliente.
name fio Não Nome do cliente. Codifique-o em URL.
metadata fio Não Objeto JSON codificado em URL contendo pares chave-valor.
callback fio Não URL a abrir quando a promoção terminar.
autoprocess booleano Não true inicia a cobrança assim que todos os preços (e o cupão) são carregados.
auto_return booleano Não Igual ao anterior. O valor por defeito false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

Não envie amount juntamente com prices. O total é calculado a partir dos preços, e uma ligação com ambos será ignorada. Os preços ocultos com `payment_hidden` ainda funcionam aqui.

Pagar uma fatura existente: pagamento://fatura

Recebe pagamentos presenciais referentes a faturas Stripe em aberto. O valor, a moeda, o cliente e os impostos são todos provenientes da fatura. Em caso de sucesso, a aplicação marca a fatura como paga. Funciona em iPhone e Android.

Nome Tipo Obrigatório Descrição
id fio Sim ID da fatura Stripe. Deve começar por in_. Enviar uma fatura aberta. No iPhone, um rascunho é finalizado primeiro. No Android, um rascunho é rejeitado com error=invoice_state_changed.
metadata fio Não Objeto JSON codificado em URL, adicionado ao PaymentIntent.
callback fio Não URL a abrir quando a venda estiver concluída. Obtém invoice_id e payment_intent_id em caso de sucesso.
autoprocess booleano Não true inicia a cobrança apenas após a aprovação da fatura, quando um leitor de cartões estiver ligado.
auto_return booleano Não Igual ao anterior. O valor por defeito false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

A fatura define a venda, pelo que qualquer um dos amount, currency, customer, customer_id, email, name, ` description, coupon, prices ou line_items resulta no link rejeitado com error=invoice_invalid_param. As faturas pagas, anuladas, não cobráveis, com valor 0, ligadas a uma assinatura ou configuradas para cobrar um método de pagamento padrão são também rejeitadas, cada uma com o seu próprio erro invoice_… `.

O retorno de chamada

A aplicação adiciona estes elementos ao seu URL de retorno de chamada:

Nome Tipo Enviado Descrição
status fio Sempre success, error ou cancelled.
charge_id fio Sobre o sucesso O ID do pagamento. No iPhone, é a cobrança Stripe ( ch_…). No Android, é o PaymentIntent ( pi_…).
stripe_charge_id fio Apenas para Android A cobrança Stripe ( ch_…).
payment_intent_id fio Sobre o sucesso O PaymentIntent. O iPhone envia-o apenas para payment://invoice. O Android envia-o para todos os pagamentos com cartão.
invoice_id fio Links para faturas A fatura paga, para payment://invoice.
amount inteiro Sobre o sucesso Valor cobrado, na unidade mais baixa.
currency fio Sobre o sucesso Código ISO em minúsculas.
error fio Em caso de erro Um código curto como charge_in_progress ou invoice_already_paid, ou uma mensagem legível para um cartão recusado.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Necessita do mesmo ID em ambas as plataformas? Leia primeiro stripe_charge_id e depois utilize o charge_id alternativa.

Para integrações mais antigas, a aplicação também envia success=true, chargeId, cancelled=true e error[message]. O novo código deve ler status.

Um cancelamento inicia a função de retorno de chamada imediatamente. O sucesso ou erro de uma cobrança aguarda o fecho do ecrã de resultados pelo comerciante, a menos que passe auto_return=true. No iPhone, uma venda a dinheiro nunca inicia a função de retorno de chamada, uma vez que nada foi cobrado.

Codificação de URL

  • Codifique todos os valores que contenham espaços ou símbolos. Os espaços passam %20, { e } passam %7B e %7D, " passa a %22, : passa a %3A.
  • Se o seu URL de retorno de chamada tiver a sua própria string de consulta, codifique todo o URL de retorno de chamada para que o caractere & não separe o seu link payment://.
  • As vírgulas e os dois pontos nos prices podem manter-se como estão.

Os metadados {"order_id":"1234","location":"Store A"} passam a ser:

 payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D

O formato antigo metadata[order_id]=1234 também funciona.

Este artigo foi útil?
0 de 0 acharam isto útil