/home/kueuepay/public_html/routes/user.php
<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\User\KycController;
use App\Http\Controllers\User\CardController;
use App\Providers\Admin\BasicSettingsProvider;
use Pusher\PushNotifications\PushNotifications;
use App\Http\Controllers\User\ProfileController;
use App\Http\Controllers\User\SecurityController;
use App\Http\Controllers\User\AddMoneyController; 
use App\Http\Controllers\User\DashboardController;
use App\Http\Controllers\User\MerchantDetailsController;
use App\Http\Controllers\User\SupportTicketController;
use App\Http\Controllers\User\TransactionLogController;
use App\Http\Controllers\User\TransferMoneyController;

Route::prefix("user")->name("user.")->group(function(){
    Route::controller(DashboardController::class)->group(function(){
        Route::get('dashboard','index')->name('dashboard');
        Route::post('logout','logout')->name('logout');
        Route::post('check-valid-user','checkValidUser')->name('check.valid.email');
    });

    //profile
    Route::controller(ProfileController::class)->prefix("profile")->name("profile.")->group(function(){
        Route::get('/','index')->name('index');
        Route::put('password/update','passwordUpdate')->name('password.update')->middleware(['app.mode']);
        Route::put('update','update')->name('update')->middleware(['app.mode']);
        Route::post('delete-account/{id}','deleteAccount')->name('delete')->middleware(['app.mode']);
    });

    //add money
    Route::controller(AddMoneyController::class)->prefix('add-money')->name('add.money.')->group(function(){
        Route::get('/','index')->name('index');
        Route::post('confirm','confirm')->name('confirm');

        Route::get('success/response/{gateway}','success')->name('payment.success');
        Route::get("cancel/response/{gateway}",'cancel')->name('payment.cancel');
        Route::post("callback/response/{gateway}",'callback')->name('payment.callback')->withoutMiddleware(['web','auth','kyc.verification.guard','verification.guard','user.google.two.factor']);

        // POST Route For Unauthenticated Request
        Route::post('success/response/{gateway}', 'postSuccess')->name('payment.success')->withoutMiddleware(['auth','kyc.verification.guard','verification.guard','user.google.two.factor']);
        Route::post('cancel/response/{gateway}', 'postCancel')->name('payment.cancel')->withoutMiddleware(['auth','kyc.verification.guard','verification.guard','user.google.two.factor']);

        // redirect with HTML form route
        Route::get('redirect/form/{gateway}', 'redirectUsingHTMLForm')->name('payment.redirect.form')->withoutMiddleware(['auth','kyc.verification.guard','verification.guard','user.google.two.factor']);

        //redirect with Btn Pay
        Route::get('redirect/btn/checkout/{gateway}', 'redirectBtnPay')->name('payment.btn.pay')->withoutMiddleware(['auth','kyc.verification.guard','verification.guard','user.google.two.factor']);

        Route::get('manual/{token}','showManualForm')->name('manual.form');
        Route::post('manual/submit/{token}','manualSubmit')->name('manual.submit');

    });
    //transfer money
    Route::controller(TransferMoneyController::class)->prefix('transfer-money')->name('transfer.money.')->middleware('kyc.verification.guard')->group(function(){
        Route::get('/','index')->name('index');
        Route::post('confirm','confirm')->name('confirm');
    });

    //merchant details 
    Route::controller(MerchantDetailsController::class)->prefix('merchant-details')->name('merchant.details.')->middleware('kyc.verification.guard')->group(function(){
        Route::get('/','index')->name('index');
        Route::post('update/{id}','update')->name('update');
        Route::post('payment-configuration-update/{id}','paymentConfiguartionUpdate')->name('payment.configuration.update');
        Route::put('status-update','statusUpdate')->name('api.keys.update');
    });

    //payment method
    Route::controller(CardController::class)->prefix('card')->name('card.')->middleware('kyc.verification.guard')->group(function(){
        Route::get('/','index')->name('index');
        Route::post('store','store')->name('store');
        Route::post('delete/{slug}','delete')->name('delete');
        Route::get('make-default/{slug}','makeDefault')->name('make.default');
        Route::post('search','search')->name('search');
    });
    //transaction logs 
    Route::controller(TransactionLogController::class)->prefix('transaction')->name('transaction.log.')->group(function(){
        Route::get('add-money','addMoney')->name('add.money'); 
        Route::get('transfer-money','transferMoney')->name('transfer.money');
        Route::get('card-payment','cardPayment')->name('card.payment');
        Route::post('search','search')->name('search');
    });

    

    Route::controller(SupportTicketController::class)->prefix("support-ticket")->name("support.ticket.")->group(function () {
        Route::get('/', 'index')->name('index');
        Route::get('create', 'create')->name('create');
        Route::post('store', 'store')->name('store');
        Route::get('conversation/{encrypt_id}','conversation')->name('conversation');
        Route::post('message/send','messageSend')->name('messaage.send');
    });

    

    Route::controller(SecurityController::class)->prefix("security")->name('security.')->group(function(){
        Route::get('google/2fa','google2FA')->name('google.2fa');
        Route::post('google/2fa/status/update','google2FAStatusUpdate')->name('google.2fa.status.update');
    });

    Route::controller(KycController::class)->prefix('kyc')->name('kyc.')->group(function() {
        Route::get('/','index')->name('index');
        Route::post('submit','store')->name('submit');
    });

});
Route::get('/user/card/{id}/transactions', [DashboardController::class,'getTransactionsByCard']);


// Route For Pusher Beams Auth
Route::get('user/pusher/beams-auth', function (Request $request) {
    if(Auth::check() == false) {
        return response(['Inconsistent request'], 401);
    }
    $userID = Auth::user()->id;

    $basic_settings = BasicSettingsProvider::get();
    if(!$basic_settings) {
        return response('Basic setting not found!', 404);
    }

    $notification_config = $basic_settings->push_notification_config;

    if(!$notification_config) {
        return response('Notification configuration not found!', 404);
    }

    $instance_id    = $notification_config->instance_id ?? null;
    $primary_key    = $notification_config->primary_key ?? null;
    if($instance_id == null || $primary_key == null) {
        return response('Sorry! You have to configure first to send push notification.', 404);
    }
    $beamsClient = new PushNotifications(
        array(
            "instanceId" => $notification_config->instance_id,
            "secretKey" => $notification_config->primary_key,
        )
    );

    $get_full_host_path = remove_special_char(get_full_url_host(), "-");

    $publisherUserId = $get_full_host_path . "-user-".$userID;
    try{
        $beamsToken = $beamsClient->generateToken($publisherUserId);
    }catch(Exception $e) {
        return response(['Server Error. Failed to generate beams token.'], 500);
    }

    return response()->json($beamsToken);
})->name('user.pusher.beams.auth');
Security

Support

If you encounter any issues or need assistance, please reach out to our dedicated developer support team Contact Us

Thank you for choosing Kueue Pay Payment Gateway Solutions! We look forward to seeing your integration thrive and provide a seamless payment experience for your valued customers.