elitetools / laravel-transaction-manager
Laravel SDK for Transaction Manager payment gateway — unified payment processing with webhook signature verification.
Package info
github.com/for4izen/laravel-transaction-manager
pkg:composer/elitetools/laravel-transaction-manager
Requires
- php: ^8.3
- laravel/framework: ^11.0|^12.0|^13.0
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.