elitetools/laravel-transaction-manager

Laravel SDK for Transaction Manager payment gateway — unified payment processing with webhook signature verification.

Maintainers

Package info

github.com/for4izen/laravel-transaction-manager

pkg:composer/elitetools/laravel-transaction-manager

Transparency log

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1 2026-08-09 06:07 UTC

This package is auto-updated.

Last update: 2026-08-09 06:10:52 UTC


README

SDK e pacote de integração oficial para o Transaction Manager (Gateway Unificado de Pagamentos da EliteHub).

Criado para ser Plug and Play: basta instalar, adicionar a Trait no seu Model e usar!

⚡ Instalação em 2 Passos

1. Adicionar o pacote

No composer.json da sua aplicação (elitebio-api, elitetweaks-api, etc.):

"repositories": [
    {
        "type": "path",
        "url": "../elitetools/laravel-transaction-manager"
    }
],
"require": {
    "elitetools/laravel-transaction-manager": "*"
}

E rode no terminal:

composer update elitetools/laravel-transaction-manager

2. Adicionar a Trait no seu Model PaymentTransaction

Basta adicionar a trait HasTransactionManager no seu Model Eloquent:

use Illuminate\Database\Eloquent\Model;
use Elitetools\TransactionManager\Contracts\PaymentTransactionInterface;
use Elitetools\TransactionManager\Traits\HasTransactionManager;

class PaymentTransaction extends Model implements PaymentTransactionInterface
{
    use HasTransactionManager; // 👈 PRONTO! Lê automático $this->user, $this->plan, $this->amount, etc.
}

🚀 Como Usar no seu Service/Controller

Inject a PaymentGatewayInterface onde precisar:

use Elitetools\TransactionManager\Contracts\PaymentGatewayInterface;

class PaymentService
{
    public function __construct(
        protected PaymentGatewayInterface $gateway
    ) {}

    // Criar Pix ou Checkout Pro
    public function checkout(PaymentTransaction $transaction, string $method = 'pix')
    {
        $result = $method === 'preference'
            ? $this->gateway->createPreference($transaction)
            : $this->gateway->createPayment($transaction);

        // $result é um DTO tipado! Atualiza o banco automaticamente:
        $transaction->update($result->toArray());

        return $transaction;
    }

    // Receber Webhook
    public function handleWebhook(Request $request)
    {
        $result = $this->gateway->handleWebhook($request);

        if (!$result) {
            return response()->json(['message' => 'Assinatura inválida'], 400);
        }

        // $result->externalId e $result->status
        $transaction = PaymentTransaction::where('external_id', $result->externalId)->first();
        $transaction?->update(['status' => $result->status]);

        return response()->json(['success' => true]);
    }
}

⚙️ Variáveis do .env (Opcional - usa fallback padrão se não informado)

TRANSACTION_MANAGER_BASE_URL=https://api.elitehub.com
TRANSACTION_MANAGER_API_KEY=sua-api-key-aqui
TRANSACTION_MANAGER_WEBHOOK_SECRET=seu-webhook-secret-aqui

🎨 Enum de Status com Cores e Labels

O pacote já vem com o Enum PaymentTransactionStatus pronto para uso em Views / Badges:

use Elitetools\TransactionManager\Enums\PaymentTransactionStatus;

$status = PaymentTransactionStatus::fromProvider(3); // Approved

$status->label(); // "Aprovado"
$status->color(); // "rgba(34, 197, 94, 0.4)"

📜 Licença

Propriedade privada — EliteHub / EliteTools.