Jika anda menggunakan Payment Gateway API, anda pasti akan menemui fungsi Callback dimana fungsi ini akan di trigger selepas sesuatu transaksi berlaku. Kita ambil contoh payment gateway Chip. Jika kita rujuk pada dokumentasi rasmi, API mereka akan return success_callback (https://docs.chip-in.asia/chip-collect/api-reference/purchases/create).
Sebagai contoh kita tetapkan success_callback url adalah https://websiteanda.com/success_callback?id=1 dan secara lazimnya akan menggunakan POST request. Di Route laravel iaitu web.php kita menggunakan code seperti dibawah
Route::post('/success_callback', function () {
$bookingId = request()->query('id') ?? null;
Log::info('success_callback trigger. Booking ID: ' . $bookingId);
});
Ini adalah route yang normal kita gunakan untuk memanggil URL dan jika sekali imbas kelihatan tiada masalah. Namum terdapat masalah yang akan terjadi dimana panggilan ke /success_callback mempunyai masalah
Masalah CSRF Token
curl -X POST https://websiteanda.com/success_callback -d "key1=value1&key2=value2" -H "Content-Type: application/x-www-form-urlencoded"
Route::post('/success_callback', function () {
$bookingId = request()->query('id') ?? null;
Log::info('success_callback trigger. Booking ID: ' . $bookingId);
})->withoutMiddleware([VerifyCsrfToken::class]);