AcapaPay · Laravel SDK
Consultar Estado de uma Fatura
Em casos onde o utilizador regresse ao seu site após o pagamento mas o Webhook ainda não tenha chegado (latência de rede), pode fazer um fallback síncrono para confirmar o estado da fatura diretamente via API:
<?php
namespace App\Http\Controllers;
use AcapaPay\Laravel\Facades\AcapaPay;
class AssinaturaController extends Controller
{
public function sucesso(Request $request)
{
$invoiceId = $request->query('invoice_id');
if ($invoiceId) {
try {
$invoice = AcapaPay::getInvoiceStatus($invoiceId);
if (($invoice['status'] ?? '') === 'paid') {
// Provisionar o serviço manualmente se o webhook
// ainda não chegou. Registar para evitar duplicação.
ProvisionarAssinatura::dispatch($invoice);
}
} catch (\Exception $e) {
// Não bloquear o utilizador — o Webhook irá confirmar depois
\Log::warning('AcapaPay fallback check falhou: ' . $e->getMessage());
}
}
return view('assinatura.sucesso');
}
}
Estrutura da Resposta da API
| Campo | Tipo | Descrição |
|---|---|---|
id | string | UUID da fatura no AcapaPay |
status | string | pending, paid, failed, cancelled |
plan_reference_code | string | Código do plano adquirido |
metadata | object | Os seus dados originais do Checkout |
subscription | object | Dados da subscrição criada (ID, data de expiração) |
paid_at | string|null | Timestamp ISO 8601 do pagamento (null se pendente) |