laravel-tap-payments maintained by flexonexus
Laravel Tap Payments
🚀 Elegant Laravel integration with Tap Payments: charges, refunds, webhooks — the clean Laravel way.
✨ Features
- 🔑 Simple Facade API:
Tap::createCharge(),Tap::refundCharge(), etc. - ⚙️ Configurable via
.env(TAP_SECRET_KEY,TAP_MODE, etc.) - 🔔 Built-in Webhook signature verification
- 📦 PSR-4 autoload & Laravel auto-discovery
- 🧪 Testbench support for easy unit testing
📦 Installation & Setup
Follow these steps to fully install and configure the package:
1. Install via Composer
composer require flexonexus/laravel-tap-payments
2. Publish the Config File
php artisan vendor:publish --tag=tap-config
This will create:
config/tap.php
3. Add Environment Variables
In your .env file:
TAP_MERCHANT_ID=your_merchant_id_here # Your Merchant ID
TAP_SECRET_KEY=sk_test_xxx # Your Tap secret key
TAP_PUBLIC_KEY=pk_test_xxx # Your Tap public key
TAP_WEBHOOK_SECRET=whsec_xxx # Webhook secret for signature verification
TAP_MODE=sandbox # sandbox | live
4. Configure Webhook URL
Set the webhook endpoint in your Tap dashboard:
https://your-domain.com/tap/webhook
The package already registers this route automatically.
5. Clear Cached Configs
If your app uses config caching, run:
php artisan config:clear
6. Test the Integration
Use the Facade to create a test charge:
use Tap;
$charge = Tap::createCharge([
'amount' => 50,
'currency' => 'USD',
'customer' => [
'first_name' => 'Test',
'email' => 'test@example.com',
'phone' => ['country_code' => '966', 'number' => '500000000'],
],
'merchant' => ['id' => config('tap.merchant_id')],
'source' => ['id' => 'src_all'],
'redirect' => ['url' => route('checkout.callback')],
'description' => 'Order #1001',
// ...any other Tap fields you need
]);
dd($charge);
If you see a JSON response with a charge_id, 🎉 the package is working.
🚀 Usage Examples
Create a Charge
$charge = Tap::createCharge([
'amount' => 50,
'currency' => 'USD',
'customer' => [
'first_name' => 'Mohamed',
'email' => 'mohamed@example.com',
'phone' => ['country_code' => '966', 'number' => '500000000'],
],
'merchant' => ['id' => config('tap.merchant_id')],
'source' => ['id' => 'src_all'],
'redirect' => ['url' => route('checkout.callback')],
'description' => 'Order #1234',
// ...any other Tap fields you need
]);
Retrieve a Charge
$charge = Tap::retrieveCharge($charge['id']);
Refund a Charge
$refund = Tap::refundCharge($charge['id'], [
'amount' => 50,
'reason' => 'customer_request'
]);
🔔 Webhooks
- The package registers
/tap/webhookautomatically. - All requests are verified with
TAP_WEBHOOK_SECRET.
Example: Listen for events
Event::listen('tap::charge.succeeded', function ($payload) {
// Update your order, mark it as paid
});
🧪 Testing
composer test
This uses PHPUnit with Orchestra Testbench.
🤝 Contributing
PRs are welcome!
Please run composer test before submitting.
💡 Credits
- Built with ❤️ by Flexo Nexus
- Tap Payments API — https://www.tap.company