Ir para o conteúdo

API – Recibos HTML (Trait ReceiptRenderer)

O ReceiptRenderer é um trait utilizado na classe Vinti4Response para gerar recibos HTML de transações processadas pelo SISP. Ele suporta compras, serviços, recargas e reembolsos, além de casos genéricos.


Principais métodos

Método Parâmetros Retorno Descrição
generateReceiptHtml(?string $companyName = null, bool $text = false) $companyName – Nome da empresa
$text – Gera recibo sem estilo se true
string Gera o HTML completo do recibo, escolhendo automaticamente o tipo de transação.
renderPurchaseReceipt(?string $companyName = null) $companyName string Recibo de compra 3DS.
renderServiceReceipt(?string $companyName = null) $companyName string Recibo para serviços públicos (água, luz, etc.).
renderRechargeReceipt(?string $companyName = null) $companyName string Recibo para recargas de telemóvel.
renderRefundReceipt(?string $companyName = null) $companyName string Recibo para reembolsos.
renderGenericReceipt(?string $companyName = null) $companyName string Recibo para casos genéricos ou tipos não especificados.

Recursos e opções

  • Suporte a DCC (Dynamic Currency Conversion) em compras.
  • Máscara de cartão (PAN) para segurança.
  • Formatação automática de moeda e timestamp.
  • Diferentes cores e ícones para status:

  • SUCCESS – Transação aprovada

  • CANCELLED – Transação cancelada
  • INVALID_FINGERPRINT – Erro de segurança
  • ❌ Outros erros
  • Estilo CSS interno ou texto puro (via $text = true).

Exemplo de uso

$response = $vinti->processResponse($_POST);

// Gera recibo com estilo padrão
echo $response->generateReceiptHtml("Minha Empresa");

// Gera recibo texto puro (sem CSS)
echo $response->generateReceiptHtml("Minha Empresa", true);

Exemplo de output – Sucesso (compra 3DS)

COMPROVATIVO DE PAGAMENTO

Minha Empresa
Referência:REF12345
Data/Hora:30/11/2025 14:32:10
Transação ID:TID987654321
100,50 CVE
Pagamento de serviços
Cartão:123456••••7890
Autorização:AUTH001

Exemplo de output – Erro (Recibo Indisponível)

RECIBO INDISPONÍVEL

Sistema Temporariamente Indisponível

Exemplo Output - Recibo Sem estilo (texto puro)

Transação de Sucesso

==== RECIBO DE TRANSAÇÃO ====
Empresa: Loja ABC
Data/Hora: 30/11/2025 15:42:10
Status: APROVADA
Mensagem: Transação válida.

Transação ID: 123456789
Referência: REF-20251130-001
Tipo de Transação: 8
Valor: 10.000,00 CVE
Cartão: 123456••••7890
Autorização: AUTH-987654

===========================

Transação com Erro

==== RECIBO DE TRANSAÇÃO ====
Empresa: Loja ABC
Data/Hora: 30/11/2025 15:45:30
Status: NÃO CONCLUÍDA
Mensagem: Erro de processamento.

Transação ID: N/A
Referência: REF-20251130-002
Tipo de Transação: 8
Valor: 5.000,00 CVE
Cartão: 123456••••1234

=== DETALHES DE ERRO ===
Erro: Saldo insuficiente
Mensagem adicional: Falha ao processar pagamento

===========================