!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/sms.picotech.app/public_html/Modules/PaymentGateway/Http/Controllers/   drwxr-xr-x
Free 28.6 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     TopUpController.php (33.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Modules\PaymentGateway\Http\Controllers;

use 
App\Models\Customer;
use 
App\Models\CustomerNumber;
use 
App\Models\Number;
use 
App\Models\NumberRequest;
use 
App\Models\Report;
use 
App\Models\SmsTemplate;
use 
App\Models\TopUpRequest;
use 
App\Models\Transactions;
use 
App\Models\User;
use 
Carbon\Carbon;
use 
Illuminate\Contracts\Support\Renderable;
use 
Illuminate\Http\Request;
use 
Illuminate\Routing\Controller;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\Log;
use 
Illuminate\Support\Str;
use 
Modules\PaymentGateway\Services\PaymentCredentials;
use 
Modules\PaymentGateway\TopUpProvider\ProcessPayment;
use 
Omnipay\Omnipay;
use 
PayPal\Api\Payment;

class 
TopUpController extends Controller
{
    public function 
index()
    {
        return 
view('paymentgateway::index');
    }

    public function 
process(Request $request)
    {

        
$customer=auth('customer')->user();
        
$currPlan=$customer->plan()->first();
        if (!
$currPlan){
            return 
redirect()->route('customer.billing.index')->withErrors(['failed'=>'Please purchase a plan first']);
        }


        
$data['total']= $currPlan->sms_unit_price 0?$request->amount:0;
        if(!
$currPlan->sms_unit_price || $currPlan->sms_unit_price==0){
            return 
redirect()->route('customer.billing.index')->withErrors(['failed'=>'Please upgrade your plan']);
        }

        if(
$currPlan->sms_unit_price 0) {
            
$credit $request->amount $currPlan->sms_unit_price;
        }else{
            
$credit=$request->amount;
        }
        
$data['unit']= floor($credit);

        return 
view('paymentgateway::top_up.index'$data);
    }

    public function 
payNow(Request $request)
    {
        if (
env("APP_DEMO")){
            return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('admin.app_demo_message')]);
        }
        
$customer auth('customer')->user();
        
$currPlan=$customer->plan()->first();

        
$total=$request->total;
        if(
$currPlan->sms_unit_price 0) {
            
$credit floor($request->total $currPlan->sms_unit_price);
        }else{
            
$credit floor($request->total);
        }
        
DB::beginTransaction();
        try {
            
$topUpReq= new TopUpRequest();
            
$topUpReq->credit=$credit;
            
$topUpReq->customer_id=$customer->id;
            
$topUpReq->admin_id=$customer->admin_id;
            
$topUpReq->payment_status='unpaid';
            
$topUpReq->customer_type=$customer->type;
            
$topUpReq->customer_type=$customer->type;
            
$topUpReq->transaction_id=$request->transaction_id;
            
$topUpReq->save();


            
//Transaction Report
            
$transaction= new Transactions();
            
$transaction->customer_id=$customer->id;
            
$transaction->type='top_up';
            
$transaction->added_by=auth('customer')->user()->type;
            
$transaction->amount=$request->total;
            
$transaction->status='unpaid';
            
$transaction->ref_id=$topUpReq->id;
            
$transaction->transaction_id=Str::random(12);
            
$transaction->save();

            if(
$currPlan->sms_unit_price <= 0) {
                
DB::commit();
                return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! top-up request under review, wait until approved'));
            }

            if (!
in_array($request->payment_type,['flutterwave','vogue_pay''offline''coinpay'])) {
                
$processPayment = new ProcessPayment();
                
$processResult $processPayment->set_gateway($request->payment_type)
                    ->
topUpReq($topUpReq)
                    ->
credit($credit)
                    ->
creditType($request->topup_type)
                    ->
amount($total)
                    ->
request($request)
                    ->
process();
                
DB::commit();
                if (
$processResult->error_message) {
                    return 
redirect()->route('customer.dashboard')->withErrors(['failed' => $processResult->error_message]);
                }
                if (
$processResult->return_view) {
                    return 
$processResult->return_view;
                } elseif (
$processResult->will_redirect && $processResult->redirect_url) {
                    return 
redirect()->to($processResult->redirect_url);
                }
            }
            else{
                
DB::commit();
                return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! top-up request under review, wait until approved'));
            }
        } catch (
\Exception $ex) {
            
Log::error($ex);
            
DB::rollBack();
            return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid Payment')]);
        }

        
//end


    
}


    public function 
paymentSuccess(Request $request)
    {
        try {
            
$credentials PaymentCredentials::get();


            if (!isset(
$credentials) || !isset($credentials->paypal_payment_mode) || !$credentials->paypal_payment_mode || (!$credentials->paypal_client_id || !$credentials->paypal_client_secret)) {
                throw new 
\Exception('Credentials not found. Please contact with the administrator');
            }
            
$mode = isset($credentials->paypal_payment_mode) && $credentials->paypal_payment_mode && $credentials->paypal_payment_mode == 'live' 'false' 'true';
            
$gateway Omnipay::create('PayPal_Rest');
            
$gateway->setClientId($credentials->paypal_client_id);
            
$gateway->setSecret($credentials->paypal_client_secret);
            
$gateway->setTestMode($mode);


            if (
$request->paymentId && $request->PayerID) {
                
$transaction $gateway->completePurchase(array(
                    
'payer_id' => $request->input('PayerID'),
                    
'transactionReference' => $request->input('paymentId'),
                ));
                
$response $transaction->send();

                if (!
$response->isSuccessful()) {
                    return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]);
                }
            } else {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Transaction is declined')]);
            }


            
$paymentId $request->paymentId;
            
$topup_request $request->topup_request;
            
$user $request->user;
            if (!
$paymentId || !$topup_request || !$user) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]);
            }


            
$topup_request TopUpRequest::where('id'$request->topup_request)->first();

            if (!
$topup_request) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]);
            }

            try {
                
$customer Customer::where('id'$topup_request->customer_id)->first();
                if (!
$customer) {
                    return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]);
                }


                
$transaction Transactions::where('type''top_up')->where('customer_id'$customer->id)->where('ref_id'$topup_request->id)->first();

                if (
$transaction) {
                    
$transaction->transaction_id $paymentId;
                    
$transaction->status 'paid';
                    
$transaction->save();
                }

                
$wallet $customer->wallet()->first();

                if (
$topup_request->credit && $customer->added_by != 'admin') {
                    
$seller Customer::where('id'$topup_request->admin_id)->where('type'$customer->added_by)->first();
                    if (!
$seller) {
                        return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]);
                    }
                    
$sellerWallet $seller->wallet()->first();
                    if (
$sellerWallet->credit $topup_request->credit) {
                        
$wallet->credit $wallet->credit $topup_request->credit;
                        
$wallet->save();

                        
$sellerWallet->credit $sellerWallet->credit $topup_request->credit;
                        
$sellerWallet->save();

                        
// For Customer
                        //Report
                        
$report = new Report();
                        
$report->customer_id $customer->id;
                        
$report->ref_id $topup_request->id;
                        
$report->type 'topup';
                        
$report->sub_type 'topup';
                        
$report->amount '+' $topup_request->credit;
                        
$report->save();
                        
//For Seller
                        //Report
                        
$report = new Report();
                        
$report->customer_id $sellerWallet->customer_id;
                        
$report->ref_id $topup_request->id;
                        
$report->type 'topup';
                        
$report->sub_type 'topop';
                        
$report->amount '-' $topup_request->credit;
                        
$report->save();
                    } else {
                        
$topUpReq = new TopUpRequest();
                        
$topUpReq->credit $topup_request->credit;
                        
$topUpReq->credit_type 'non_masking';
                        
$topUpReq->customer_id $customer->id;
                        
$topUpReq->admin_id $customer->admin_id;
                        
$topUpReq->payment_status 'unpaid';
                        
$topUpReq->customer_type $customer->type;
                        
$topUpReq->transaction_id $request->transaction_id;
                        
$topUpReq->save();
                    }
                } else {
                    
$wallet->credit $wallet->credit $topup_request->credit;
                    
$wallet->save();
                    
$report = new Report();
                    
$report->customer_id $customer->id;
                    
$report->ref_id $topup_request->id;
                    
$report->type 'topup';
                    
$report->sub_type 'topup';
                    
$report->amount '+' $topup_request->credit;
                    
$report->save();
                }


                
$topup_request->payment_status 'paid';
                
$topup_request->status 'approved';
                
$topup_request->transaction_id $request->paymentId;
                
$topup_request->save();

                return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! Credit successfully added your wallet'));
            } catch (
\Exception $ex) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]);
            }

            return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! Top-Up request under review, wait until approved'));
        } catch (
\Exception $ex) {
            return 
redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]);
        }
    }

    public function 
stripeSuccess(Request $request)
    {

        try {


//            $paymentId = $request->paymentId;
            
$topup_request $request->topup_request;
            
$user $request->user;
            if (!
$topup_request || !$user) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]);
            }


            
$topup_request TopUpRequest::where('id'$request->topup_request)->first();

            if (!
$topup_request) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]);
            }

            try {
                
$customer Customer::where('id'$topup_request->customer_id)->first();
                if (!
$customer) {
                    return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]);
                }


                
$transaction Transactions::where('type''top_up')->where('customer_id'$customer->id)->where('ref_id'$topup_request->id)->first();

                if (
$transaction) {
//                    $transaction->transaction_id = $paymentId;
                    
$transaction->status 'paid';
                    
$transaction->save();
                }

                
$wallet $customer->wallet()->first();

                if (
$topup_request->credit && $customer->added_by != 'admin') {
                    
$seller Customer::where('id'$topup_request->admin_id)->where('type'$customer->added_by)->first();
                    if (!
$seller) {
                        return 
redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]);
                    }
                    
$sellerWallet $seller->wallet()->first();
                    if (
$sellerWallet->credit $topup_request->credit) {
                        
$wallet->credit $wallet->credit $topup_request->credit;
                        
$wallet->save();

                        
$sellerWallet->credit $sellerWallet->credit $topup_request->credit;
                        
$sellerWallet->save();

                        
// For Customer
                        //Report
                        
$report = new Report();
                        
$report->customer_id $customer->id;
                        
$report->ref_id $topup_request->id;
                        
$report->type 'topup';
                        
$report->sub_type 'topup';
                        
$report->amount '+' $topup_request->credit;
                        
$report->save();
                        
//For Seller
                        //Report
                        
$report = new Report();
                        
$report->customer_id $sellerWallet->customer_id;
                        
$report->ref_id $topup_request->id;
                        
$report->type 'topup';
                        
$report->sub_type 'topop';
                        
$report->amount '-' $topup_request->credit;
                        
$report->save();
                    } else {
                        
$topUpReq = new TopUpRequest();
                        
$topUpReq->credit $topup_request->credit;
                        
$topUpReq->credit_type 'non_masking';
                        
$topUpReq->customer_id $customer->id;
                        
$topUpReq->admin_id $customer->admin_id;
                        
$topUpReq->payment_status 'unpaid';
                        
$topUpReq->customer_type $customer->type;
                        
$topUpReq->transaction_id $request->transaction_id;
                        
$topUpReq->save();
                    }
                } else {
                    
$wallet->credit $wallet->credit $topup_request->credit;
                    
$wallet->save();
                    
$report = new Report();
                    
$report->customer_id $customer->id;
                    
$report->ref_id $topup_request->id;
                    
$report->type 'topup';
                    
$report->sub_type 'topup';
                    
$report->amount '+' $topup_request->credit;
                    
$report->save();
                }


                
$topup_request->payment_status 'paid';
                
$topup_request->status 'approved';
                
$topup_request->transaction_id $request->paymentId;
                
$topup_request->save();

                return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! Credit successfully added your wallet'));
            } catch (
\Exception $ex) {
                return 
redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]);
            }

            return 
redirect()->route('customer.dashboard')->with('success'trans('Congratulations! Top-Up request under review, wait until approved'));
        } catch (
\Exception $ex) {
            return 
redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]);
        }
    }


    function 
getPayPalApiContext($client_id$secret_key)
    {

        return new 
\PayPal\Rest\ApiContext(
            new 
\PayPal\Auth\OAuthTokenCredential(
                
$client_id,     // ClientID
                
$secret_key      // ClientSecret
            
)
        );
    }


    public function 
paymentCancel()
    {
        return 
redirect()->route('customer.numbers.purchase')->withErrors(['msg' => trans('Payment has been cancelled')]);
    }


    public function 
checkValidPayment(Request $request){
        
$number Number::where('id'$request->number_id)->first();
        if (
$number->price==$request->price){
            return 
response()->json(['status'=>'success']);
        }else{
            return 
abort(404);
        }
    }

    function 
edie($error_msg)
    {
        
\Log::error($error_msg);
        exit();
    }

    public function 
webhook(Request $request){
        
$settings json_decode(get_settings('payment_gateway'));
        
$merchant_id = isset($settings->merchate_id)?$settings->merchate_id:'';
        
$ipn_secret = isset($settings->ipn_secret)?$settings->ipn_secret:'';


        
$txn_id = isset($request->txn_id)?$request->txn_id:'';
        if(
$txn_id){
            
$payment CustomerNumber::where("transaction_id"$txn_id)->first();
            
$number Number::where("id"$payment->number_id)->first();
        }else{
            
abort('404');
        }

        
$order_total = isset($number->sell_price)?$number->sell_price:0//BTC
        
if (!isset($request->ipn_mode) || $request->ipn_mode != 'hmac') {
            
$this->edie("IPN Mode is not HMAC");
        }

        if (!isset(
$_SERVER['HTTP_HMAC']) || empty($_SERVER['HTTP_HMAC'])) {
            
$this->edie("No HMAC Signature Sent.");
        }


        if (!isset(
$request->merchant) || $request->merchant != trim($merchant_id)) {
            
$this->edie("No or incorrect merchant id.");
        }

        
$hmac =  hash_hmac("sha512"$requesttrim($ipn_secret));
        if (!
hash_equals($hmac$_SERVER['HTTP_HMAC'])) {
            
$this->edie("HMAC signature does not match.");
        }

        
$amount1 floatval($request->amount1); //IN USD
        
$amount2 floatval($request->amount2); //IN BTC

        
$status intval($request->status);


        if (
$amount1 $order_total) {
            
$this->edie("Amount is lesser than order total");
        }

        if (
$status >= 100 || $status == 2) {
            
// Payment is complete
            
$payment->status 'accepted';
            
$payment->save();
        }
        die(
"IPN OK");
    }


    public function 
coinPayment(Request $request){
        
$user auth('customer')->user();
        
$number Number::find($request->number_id);
        if (!
$number) return response()->json(['status'=>'failed','message' => trans('Number not found')]);

        
$numberReq = new NumberRequest();
        
$numberReq->admin_id $number->admin_id;
        
$numberReq->customer_id $user->id;
        
$numberReq->number_id $number->id;
        
$numberReq->save();


        
$settings json_decode(get_settings('payment_gateway'));
        
$private_key = isset($settings->private_key)?$settings->private_key:'';
        
$public_key = isset($settings->public_key)?$settings->public_key:'';

        
$cps_api = new \CoinpaymentsAPI($private_key$public_key,'json');

// Enter amount for the transaction
        
$settings json_decode(get_settings('local_setting'));
        
$currency1=isset($settings->currency_code)?$settings->currency_code:'USD';
        
$currency2=isset($request->coin_payment_type)?strtoupper($request->coin_payment_type):'BTC';

// Enter buyer email below
        
$amount $number->sell_price;


        
$urlroute('paymentgateway::number.coin.payment');
        
$userName$user->full_name;
        
$userEmail$user->email;
        
$itemName$number->number;

        
$data=[
            
'amount'=>$amount,
            
'currency1'=>$currency1,
            
'currency2'=>$currency2,
            
'buyer_name'=>$userName,
            
'buyer_email'=>$userEmail,
            
'item_name'=>$itemName,
            
'ipn_url'=>$url,
        ];

        
$transaction_response $cps_api->CreateCustomTransaction($data);

        if (
$transaction_response['error'] == 'ok') {

            if(isset(
$transaction_response['result']) && isset($transaction_response['result']['txn_id'])) {
                
$numberReq->transaction_id $transaction_response['result']['txn_id'];
                
$numberReq->save();
            }

            
$status_url = isset($transaction_response['result']) && isset($transaction_response['result']['status_url']) ? $transaction_response['result']['status_url'] : '';
            
$responseAmount=isset($transaction_response['result']) && isset($transaction_response['result']['amount'])?$transaction_response['result']['amount']:'';

            
$data=[
                
'status_url'=>$status_url,
                
'amount'=>$responseAmount,
                
'currency'=>$currency2,
            ];
            return 
response()->json(['status'=>'success''data'=>$data]);
        } else {
            throw new 
\Exception($transaction_response['error']);
            return 
response()->json(['status'=>'failed''message'=>$transaction_response['error']]);
        }
    }

    public function 
topUpSsl(Request $request){
        
DB::beginTransaction();

        try {
        if(!
$request->value_a || !$request->value_b){
            return  
abort(404);
        }
        
$topUpRequest=TopUpRequest::where('id'$request->value_b)->first();
        if(
$topUpRequest){
//Credit Added in customer
                
$customer Customer::where('id'$topUpRequest->customer_id)->firstOrFail();
                
$wallet $customer->wallet()->first();
                
$maskingPreCredit $wallet->masking_credit;

                
$nonMaskingPreCredit $wallet->non_masking_credit;
                
$whatsappPreCredit $wallet->whatsapp_credit;
                if (
$topUpRequest->credit_type == 'masking') {
                    
$wallet->masking_credit $maskingPreCredit $topUpRequest->credit;
                    
$wallet->save();
                } else if (
$topUpRequest->credit_type == 'whatsapp') {
                    
$wallet->whatsapp_credit $whatsappPreCredit $topUpRequest->whatsapp_credit;
                    
$wallet->save();
                } else if (
$topUpRequest->credit_type == 'non_masking') {
                    
$wallet->non_masking_credit $nonMaskingPreCredit $topUpRequest->credit;
                    
$wallet->save();
                }

            
$topUpRequest->payment_status='paid';
            
$topUpRequest->status 'approved';
            
$topUpRequest->save();

            
$seller Customer::where('id'$customer->admin_id)->first();

            if (
$customer->added_by !='admin') {
                
$sellerWallet $seller->wallet()->first();
                
$maskingCredit $sellerWallet->masking_credit;
                
$nonMaskingCredit $sellerWallet->non_masking_credit;
                
$whatsappCredit $sellerWallet->whatsapp_credit;

                
$pMaskingCredit $maskingCredit $topUpRequest->credit;
                
$pNonMaskingCredit $nonMaskingCredit $topUpRequest->credit;
                
$pWhatsappCredit $whatsappCredit $topUpRequest->credit;
                
$approvedCredit 0;
                if (
$topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) {
                    
$sellerWallet->masking_credit $pMaskingCredit;
                    
$sellerWallet->save();
                    
$approvedCredit $pMaskingCredit;
                } else if (
$topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) {
                    
$sellerWallet->whatsapp_credit $pWhatsappCredit;
                    
$sellerWallet->save();
                    
$approvedCredit $pWhatsappCredit;
                } else if (
$topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) {
                    
$sellerWallet->non_masking_credit $pNonMaskingCredit;
                    
$sellerWallet->save();
                    
$approvedCredit $pNonMaskingCredit;
                } else {
                    throw new 
\Exception('Low credit, please top-up and try again');
                }
            }
        }
        
auth('customer')->loginUsingId($customer->id);
            
DB::commit();
        return 
redirect()->route('customer.dashboard')->with('success''Congratulations! Top-Up Request Successfully Sent');
        } catch (
\Throwable $ex) {
            
DB::rollback();
            return 
redirect()->route('customer.dashboard')->withErrors(['fail' => $ex->getMessage()]);
        }
    }

    public function 
uddoktapayTopUpSuccess(Request $request){

        if(isset(
$request->product_id) && isset($request->transaction_id)){
            
$topUpRequest=TopUpRequest::where('id'$request->product_id)->first();
            if (
$topUpRequest){
                
$topUpRequest->transaction_id=$request->transaction_id;
                
$topUpRequest->save();

                if(
$request->status && $request->status=='COMPLETED'){
                    
$customer Customer::where('id'$topUpRequest->customer_id)->firstOrFail();
                    
$wallet $customer->wallet()->first();
                    
$maskingPreCredit $wallet->masking_credit;

                    
$nonMaskingPreCredit $wallet->non_masking_credit;
                    
$whatsappPreCredit $wallet->whatsapp_credit;
                    if (
$topUpRequest->credit_type == 'masking') {
                        
$wallet->masking_credit $maskingPreCredit $topUpRequest->credit;
                        
$wallet->save();
                    }else if (
$topUpRequest->credit_type == 'whatsapp') {
                        
$wallet->whatsapp_credit $whatsappPreCredit $topUpRequest->whatsapp_credit;
                        
$wallet->save();
                    } else if (
$topUpRequest->credit_type == 'non_masking') {
                        
$wallet->non_masking_credit $nonMaskingPreCredit $topUpRequest->credit;
                        
$wallet->save();
                    }

                    
$topUpRequest->payment_status='paid';
                    
$topUpRequest->status 'approved';
                    
$topUpRequest->save();

                    
$seller Customer::where('id'$customer->admin_id)->first();

                    if (
$customer->added_by !='admin') {
                        
$sellerWallet $seller->wallet()->first();
                        
$maskingCredit $sellerWallet->masking_credit;
                        
$nonMaskingCredit $sellerWallet->non_masking_credit;

                        
$pMaskingCredit $maskingCredit $topUpRequest->credit;
                        
$pNonMaskingCredit $nonMaskingCredit $topUpRequest->credit;

                        
$whatsappCredit $sellerWallet->whatsapp_credit;
                        
$pWhatsappCredit $whatsappCredit $topUpRequest->credit;

                        
$approvedCredit 0;
                        if (
$topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) {
                            
$sellerWallet->masking_credit $pMaskingCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pMaskingCredit;
                        } else if (
$topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) {
                            
$sellerWallet->whatsapp_credit $pWhatsappCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pWhatsappCredit;
                        } else if (
$topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) {
                            
$sellerWallet->non_masking_credit $pNonMaskingCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pNonMaskingCredit;
                        } else {
                            throw new 
\Exception('Low credit, please top-up and try again');
                        }
                        
//            Credit Minus
                        
$creditHistory = new CreditHistory();
                        
$creditHistory->credit '-'.$approvedCredit;
                        
$creditHistory->user_id $seller->id;
                        
$creditHistory->ref_id $sellerWallet->id;
                        
$creditHistory->ref 'Request Approved by ' ucfirst(str_replace('_''-'$seller->type));
                        
$creditHistory->save();
                    }

                    
$creditHistory = new CreditHistory();
                    
$creditHistory->credit '+'.$topUpRequest->credit;
                    
$creditHistory->user_id $topUpRequest->customer_id;
                    
$creditHistory->ref_id $wallet->id;
                    
$creditHistory->ref 'Top-Up Request Approved';
                    
$creditHistory->save();
                }
            }
        }
        return 
redirect()->route('customer.dashboard')->with('success''Congratulations! Top-Up Request Successfully Sent');
    }

    public function 
processPaystackPayment(Request $request){
        
DB::beginTransaction();
        try {
            if (isset(
$request->topup_req) && isset($request->trxref)) {
                
$topUpRequest TopUpRequest::where('id'$request->product_id)->first();
                if (
$topUpRequest) {
                    
$topUpRequest->transaction_id $request->transaction_id;
                    
$topUpRequest->save();


                    
$customer Customer::where('id'$topUpRequest->customer_id)->firstOrFail();
                    
$wallet $customer->wallet()->first();
                    
$maskingPreCredit $wallet->masking_credit;

                    
$nonMaskingPreCredit $wallet->non_masking_credit;
                    
$whatsappPreCredit $wallet->whatsapp_credit;
                    if (
$topUpRequest->credit_type == 'masking') {
                        
$wallet->masking_credit $maskingPreCredit $topUpRequest->credit;
                        
$wallet->save();
                    } else if (
$topUpRequest->credit_type == 'whatsapp') {
                        
$wallet->whatsapp_credit $whatsappPreCredit $topUpRequest->whatsapp_credit;
                        
$wallet->save();
                    } else if (
$topUpRequest->credit_type == 'non_masking') {
                        
$wallet->non_masking_credit $nonMaskingPreCredit $topUpRequest->credit;
                        
$wallet->save();
                    }

                    
$topUpRequest->transaction_id $request->trxref;
                    
$topUpRequest->payment_status 'paid';
                    
$topUpRequest->status 'approved';
                    
$topUpRequest->save();

                    
$seller Customer::where('id'$customer->admin_id)->first();

                    if (
$customer->added_by != 'admin') {
                        
$sellerWallet $seller->wallet()->first();
                        
$maskingCredit $sellerWallet->masking_credit;
                        
$nonMaskingCredit $sellerWallet->non_masking_credit;

                        
$pMaskingCredit $maskingCredit $topUpRequest->credit;
                        
$pNonMaskingCredit $nonMaskingCredit $topUpRequest->credit;

                        
$whatsappCredit $sellerWallet->whatsapp_credit;
                        
$pWhatsappCredit $whatsappCredit $topUpRequest->credit;

                        
$approvedCredit 0;
                        if (
$topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) {
                            
$sellerWallet->masking_credit $pMaskingCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pMaskingCredit;
                        } else if (
$topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) {
                            
$sellerWallet->whatsapp_credit $pWhatsappCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pWhatsappCredit;
                        } else if (
$topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) {
                            
$sellerWallet->non_masking_credit $pNonMaskingCredit;
                            
$sellerWallet->save();
                            
$approvedCredit $pNonMaskingCredit;
                        } else {
                            throw new 
\Exception('Low credit, please top-up and try again');
                        }
                        
//            Credit Minus
                        
$creditHistory = new CreditHistory();
                        
$creditHistory->credit '-' $approvedCredit;
                        
$creditHistory->user_id $seller->id;
                        
$creditHistory->ref_id $sellerWallet->id;
                        
$creditHistory->ref 'Request Approved by ' ucfirst(str_replace('_''-'$seller->type));
                        
$creditHistory->save();
                    }

                    
$creditHistory = new CreditHistory();
                    
$creditHistory->credit '+' $topUpRequest->credit;
                    
$creditHistory->user_id $topUpRequest->customer_id;
                    
$creditHistory->ref_id $wallet->id;
                    
$creditHistory->ref 'Top-Up Request Approved';
                    
$creditHistory->save();

                }
            }
            
DB::commit();
            return 
redirect()->route('customer.dashboard')->with('success''Congratulations! Top-Up Request Successfully Sent');
        }catch(
\Exception $ex){
            
DB::rollback();
            return 
redirect()->route('customer.dashboard')->withErrors(['failed'$ex->getMessage()]);
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0081 ]--