1. Go to this page and download the library: Download sikeu/laravel-payment 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/ */
sikeu / laravel-payment example snippets
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Sikeu\LaravelPayment\Exceptions\SikeuPaymentException;
use Sikeu\LaravelPayment\Services\SikeuPaymentService;
class PaymentController extends Controller
{
public function __construct(
private SikeuPaymentService $payment
) {}
public function serviceCategories()
{
return response()->json($this->payment->getAvailableServices());
}
public function revenueAccountCodes()
{
return response()->json($this->payment->getRevenueAccountCodes());
}
public function create(Request $request)
{
$validated = $request->validate([
'service_category' => 'w(string $paymentRequestId)
{
try {
return response()->json($this->payment->checkPaymentRequest($paymentRequestId));
} catch (SikeuPaymentException $e) {
return response()->json([
'message' => $e->getMessage(),
'errors' => $e->getResponseData(),
], 400);
}
}
}
use App\Http\Controllers\PaymentController;
use Illuminate\Support\Facades\Route;
Route::prefix('payments')->group(function () {
Route::get('/service-categories', [PaymentController::class, 'serviceCategories']);
Route::get('/revenue-account-codes', [PaymentController::class, 'revenueAccountCodes']);
Route::post('/', [PaymentController::class, 'create']);
Route::get('/{paymentRequestId}', [PaymentController::class, 'show']);
});
use App\Http\Controllers\SikeuCallbackController;
use Illuminate\Support\Facades\Route;
Route::post('/sikeu/callback', [SikeuCallbackController::class, 'handle'])
->middleware('sikeu.signature');
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ValidateSikeuSignature
{
public function handle(Request $request, Closure $next)
{
$timestamp = $request->header('X-Timestamp');
$signature = $request->header('X-Signature');
$secret = config('sikeu.auth.shared_secret');
if (!$timestamp || !$signature) {
return response()->json(['message' => 'Missing signature headers'], 401);
}
$body = $request->getContent();
$expected = hash_hmac('sha256', $timestamp . ':' . $body, $secret);
if (!hash_equals($expected, $signature)) {
return response()->json(['message' => 'Invalid signature'], 401);
}
return $next($request);
}
}