PHP code example of hopekelldev / laravel-payvessel
1. Go to this page and download the library: Download hopekelldev/laravel-payvessel 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/ */
hopekelldev / laravel-payvessel example snippets
use Payvessel;
$response = Payvessel::virtualAccounts()->createVirtualAccount([
'email' => '[email protected] ',
'name' => 'JOHN DOE',
'phoneNumber' => '09012345678',
'bankcode' => ['999991'], // Example: PalmPay code
'account_type' => 'STATIC',
'bvn' => '12345678901', // Or 'nin' => '123456789'
]);
if (isset($response['status']) && $response['status'] === 'success') {
// Success logic
} else {
// Handle failure
}
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use HopekellDev\Payvessel\Facades\Payvessel;
class PayvesselController extends Controller
{
public function createVirtualAccount(Request $request): JsonResponse
{
$validated = $request->validate([
'email' => 'virtualAccounts()->createVirtualAccount($validated);
return response()->json($result, 201);
} catch (\InvalidArgumentException $e) {
return response()->json(['error' => $e->getMessage()], 422);
} catch (\Exception $e) {
return response()->json(['error' => 'Server Error'], 500);
}
}
public function getVirtualAccount($account): JsonResponse
{
try {
$result = Payvessel::virtualAccounts()->getSingleVirtualAccount($account);
return response()->json($result, 200);
} catch (\Exception $e) {
return response()->json(['error' => 'Server Error'], 500);
}
}
public function updateAccountBVN(Request $request, $account): JsonResponse
{
$validated = $request->validate([
'bvn' => 'on']['reference'], $data['order']['amount'], $data['virtualAccount']['virtualAccountNumber'])
) {
return response()->json(['message' => 'Invalid payload structure'], 422);
}
$reference = $data['transaction']['reference'];
$amount = floatval($data['order']['amount']);
$virtualAccount = $data['virtualAccount']['virtualAccountNumber'];
$virtualBankAccount = StaticBankAccount::where('account_number', $virtualAccount)->first();
if (!$virtualBankAccount || !$virtualBankAccount->user_id) {
return response()->json(['message' => 'User not found'], 404);
}
$user = User::find($virtualBankAccount->user_id);
if (!$user) {
return response()->json(['message' => 'User not found'], 404);
}
if (Transaction::where('reference', $reference)->exists()) {
return response()->json(['message' => 'Transaction already exists'], 200);
}
$transactionData = [
'amount' => $amount,
'payment' => 'Wallet Funding',
'reference' => $reference,
'gateway_id' => 5,
];
Transaction::create([
'user_id' => $user->id,
'reference' => $reference,
'amount' => $amount,
'status' => 'successful',
'gateway_id' => 5,
]);
$user->increment('balance', $amount);
return response()->json(['message' => 'success'], 200);
}
}
bash
php artisan vendor:publish --tag=config --provider="HopekellDev\Payvessel\PayvesselServiceProvider"