1. Go to this page and download the library: Download vexpay/laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Illuminate\Database\Eloquent\Model;
use VexPay\Laravel\Billable;
class Order extends Model
{
use Billable;
}
use App\Models\Order;
class PayOrderController
{
public function __invoke(Order $order)
{
return $order->checkout($order->total_usd, [
'description' => "Pedido #{$order->number}",
'successUrl' => route('orders.thanks', $order),
'cancelUrl' => route('cart'),
'metadata' => ['orderNumber' => (string) $order->number],
]);
}
}
use Illuminate\Support\Facades\Event;
use VexPay\Laravel\Events\Billing\PaymentFailed;
use VexPay\Laravel\Events\Billing\PaymentReversed;
use VexPay\Laravel\Events\Billing\PaymentSucceeded;
Event::listen(function (PaymentSucceeded $event) {
$order = $event->billable(); // the Order that started the checkout
$order->markPaid($event->payment->payment_id);
});
Event::listen(function (PaymentFailed $event) {
logger()->info('payment failed', ['code' => $event->payment->failure_code]);
});
Event::listen(function (PaymentReversed $event) {
$event->billable()->refundFulfilment();
});
use Illuminate\Contracts\Queue\ShouldQueue;
use VexPay\Laravel\Events\Webhooks\PayoutFailed;
class NotifySellerOfFailedPayout implements ShouldQueue
{
public function handle(PayoutFailed $event): void
{
$seller = $event->owner();
$code = $event->webhook->data['failureCode'] ?? null;
// ...
}
}
use Illuminate\Support\Facades\Route;
use VexPay\Laravel\Http\Controllers\WebhookController;
use VexPay\Laravel\Http\Middleware\VerifyWebhookSignature;
Route::post('/hooks/vexpay', WebhookController::class)->middleware(VerifyWebhookSignature::class);
use Illuminate\Database\Eloquent\Model;
use VexPay\Laravel\HasVexPayMerchant;
class Seller extends Model
{
use HasVexPayMerchant;
}