(06) Receber pagamentos
Modo teste
Pagar sem dinheiro, com os botões aprovar e recusar do checkout.
Pagar sem dinheiro
Uma sessão criada com uma chave sk_test_ abre o mesmo checkout que o comprador vai ver em produção, com a faixa Modo teste por cima. Não há banco nenhum do outro lado: depois de escolher o método e carregar em pagar, aparece um quadro "Modo teste: decida o resultado", com dois botões.
| Botão | O que acontece |
|---|---|
| Aprovar | O pagamento fica confirmado, a sessão passa a complete, o livro regista bruto, taxa e líquido no teu saldo de teste, e recebes payment.succeeded no endpoint de teste. |
| Recusar | A tentativa falha, recebes payment.failed com o motivo, e a sessão continua open: o comprador pode tentar outra vez. |
Os botões aparecem no Multicaixa Express, na referência, na transferência e no débito direto, os métodos em que, a sério, o comprador (ou o banco) confirma depois. Com Visa e Mastercard não há espera: o pagamento de teste fica aprovado logo, como quando o Stripe aceita o cartão; para ensaiar uma recusa, usa um dos outros métodos. Onde o checkout pede um telemóvel, serve qualquer número angolano válido (9 dígitos a começar por 9, por exemplo 923456789). Nada sai para fora: nenhum SMS, nenhum pedido ao banco, nenhum cartão cobrado.
A transferência e o débito direto em teste
Numa sessão de teste que peça bank_transfer, o checkout mostra a tua conta (a mesma de produção, escolhida em Contas de transferência), um aviso de que é teste e não se transfere dinheiro, e o descritivo. Os botões Aprovar e Recusar fazem de ti a ver o extrato; a transferência de teste também aparece no painel em Transferências, no modo teste, e confirmá-la lá dá o mesmo resultado: a taxa sai do teu saldo de teste.
No direct_debit há três botões. Ativar o mandato faz de titular que vai ao banco: a cobrança apresenta-se logo, com a data de cobrança. Depois, Aprovar faz de banco que liquida, e Recusar de banco que recusa. Sem tocar em nada, a tarefa do relógio (debitos-diretos, de minuto a minuto) liquida sozinha as cobranças de teste que chegaram à data de cobrança: é assim que uma subscrição por débito direto renova em teste sem ninguém. Para ensaiar o banco a recusar a renovação, usa o IBAN de recusa AO06 0099 0000 0000 0000 0138 0 no mandato: as cobranças dele são recusadas, e a subscrição passa a past_due com o aviso e o link.
Uma subscrição por cartão em teste renova sozinha como em produção: no início de cada ciclo o motor cobra o cartão de ensaio, sem link, e recebes subscription.renewed.
O que vale a pena ensaiar
- O caminho feliz: criar a sessão, aprovar, receber
payment.succeeded, e ver a encomenda marcada como paga pelo webhook (e não pelo regresso). - A recusa e a segunda tentativa: recusar, ver
payment.failed, tentar outra vez e aprovar. - O comprador que desiste: carregar em "Cancelar e voltar" e chegar ao
cancel_url. - O teu servidor em baixo: responder
500ao webhook e ver as retentativas chegarem, ou reenviar o evento do painel (Eventos, Reenviar). - O estorno: estornar o pagamento aprovado com
POST /v1/refundse receberrefund.created.
No painel
O painel tem uma faixa no topo que diz o modo e o muda. Em modo teste vês as sessões (Pagamentos), o saldo de teste, os eventos enviados e as chaves e endpoints de teste. Nada disto se mistura com produção.
O que o modo teste não prova
O modo teste prova a tua integração, e não o gateway: o tempo de confirmação do Multicaixa Express, a app da PayPay ou a página do Stripe só se veem em produção. O código é o mesmo nos dois modos; muda a chave (ver Chaves e modos).