Pagamentos em cripto para FOSSBilling
Um adaptador de pagamento para FOSSBilling que permite aos clientes pagar faturas em USDT (TRC20, ERC20, BEP20) e outras moedas pela SnapEX Pay. Quando o cliente escolhe SnapEX Pay em uma fatura, o adaptador cria uma fatura na SnapEX Pay e mostra um botão para a página de pagamento (ou redireciona para lá na hora, se o FOSSBilling pedir). Com o pagamento confirmado, um webhook assinado chega à URL de IPN do FOSSBilling, o cliente recebe o crédito e a fatura é marcada como paga.
Grátis. Versão 1.2.0.
O que faz
- Sem carteira, node ou monitor de blockchain para manter: o dinheiro entra no seu saldo de comerciante na SnapEX Pay.
- Um adaptador de arquivo único, que aparece em System → Payment gateways.
- Os webhooks são verificados com HMAC-SHA256 e uma janela de 5 minutos, e a fatura é relida na API da SnapEX Pay antes de qualquer crédito.
- Cada pagamento é lançado uma única vez: um webhook repetido não credita o cliente de novo, e a baixa é feita sob um lock do banco de dados, quando o banco permite. Se o total da fatura mudou depois do checkout, nada é creditado automaticamente.
- O Enable Test Mode do FOSSBilling cria faturas de teste da SnapEX Pay sem dinheiro real; pagamentos de teste nunca são aplicados enquanto o gateway está em modo real.
- Cada site FOSSBilling só dá baixa nas faturas que ele mesmo criou; faturas que não estão em USD são convertidas por uma cotação fixa ou pelas cotações do próprio FOSSBilling.
Instalação
- Do arquivo compactado, copie
SnapexPay.phppara a raiz do seu FOSSBilling, de modo que ele fique emlibrary/Payment/Adapter/SnapexPay/SnapexPay.php(nomes de pasta e de arquivo diferenciam maiúsculas de minúsculas), e garanta que o usuário do servidor web consiga lê-lo. - Na área de administração, vá em System → Payment gateways → New payment gateway e instale o SnapexPay.
- Abra o gateway, cole a chave de API (escopos
invoices.read,invoices.write) do painel da SnapEX Pay, marque Enabled e Allow One Time Payments e salve. - Copie a IPN Callback URL exibida na página do gateway (
https://<your-fossbilling>/ipn.php?gateway_id=<id>), defina-a como URL do webhook no painel da SnapEX Pay (Desenvolvedores) e cole a chave secretawhsec_…(exibida uma única vez, ao salvar a URL pela primeira vez) em Webhook secret. - Ative o Enable Test Mode, pague uma fatura e confirme o pagamento de teste na página da SnapEX Pay; a fatura deve passar para Paid. Depois, desative o modo de teste.
Configurações
| API key | No painel da SnapEX Pay → Desenvolvedores, escopos invoices.read e invoices.write. |
|---|---|
| Webhook secret | A chave secreta whsec_… do endpoint do webhook. Webhooks sem assinatura HMAC ou com assinatura inválida são rejeitados. |
| Network fee paid by | merchant: o cliente paga o valor da fatura, e a taxa é descontada do que você recebe. customer: a taxa da SnapEX Pay e a taxa de rede são somadas ao valor. |
| Payment window, minutes | 1–1440, padrão 60. |
| USD per 1 unit of invoice currency | Ignorado em faturas em USD. Para outras moedas, uma cotação fixa, ou deixe em branco para usar as cotações do próprio FOSSBilling (o USD precisa existir em System → Currencies). |
| Enable Test Mode | O interruptor do próprio FOSSBilling: ligado — faturas de teste da SnapEX Pay; desligado — faturas no modo real. |
| Partner ID | Opcional: o Partner ID do integrador que configurou o módulo (programa de indicações da SnapEX Pay). Deixe em branco se você mesmo fez a configuração. |
| API URL | Deixe em branco. |
Perguntas
Quais versões do FOSSBilling são compatíveis?
FOSSBilling 0.8.x e as builds de desenvolvimento atuais.
O SnapexPay não aparece em New payment gateway.
Confira o caminho library/Payment/Adapter/SnapexPay/SnapexPay.php (diferencia maiúsculas de minúsculas), relativo à pasta onde está o ipn.php, e se o servidor web consegue ler o arquivo.
O cliente pagou, mas a fatura continua em aberto.
Abra Invoices → Transactions. Se não houver transação, confira as entregas do webhook no painel da SnapEX Pay e se a URL inclui ?gateway_id=. Depois de corrigir a causa, você pode processar a transação de novo pela área de administração.
Uma transação mostra “partially paid”, “already paid” ou “total changed”.
Esses casos nunca são creditados automaticamente. Confira o pagamento no painel da SnapEX Pay e depois adicione o crédito ou marque a fatura como paga manualmente.
Vários sites FOSSBilling podem usar uma só conta da SnapEX Pay?
Cada site só dá baixa nas próprias faturas, mas uma conta da SnapEX Pay tem uma única URL de webhook, e o adaptador só confirma pagamentos pelo webhook. Por isso, só o site cuja URL de IPN está definida como webhook tem os pagamentos confirmados automaticamente.
Outras integrações
Pronto para receber em cripto?
Crie uma conta de comerciante, gere uma chave de API e conecte o módulo. 1% por pagamento, sem mensalidade.