@php $data = [ 'merchant_id' => env('PF_MERCHANT_ID'), 'merchant_key' => env('PF_MERCHANT_KEY'), 'return_url' => env('PF_RETURN_URL'), 'cancel_url' => env('PF_CANCEL_URL'), 'notify_url' => env('PF_ITN_URL'), 'm_payment_id' => request()->cookie('order_id'), 'amount' => number_format(request()->cookie('amount'), 2, '.', ''), 'item_name' => request()->cookie('item_name') ]; function generateSignature($data, $passPhrase = null) { $pfOutput = ''; foreach( $data as $key => $val ) { if($val !== '') { $pfOutput .= $key .'='. urlencode( trim( $val ) ) .'&'; } } $getString = substr( $pfOutput, 0, -1 ); if( $passPhrase !== null ) { $getString .= '&passphrase='. urlencode( trim( $passPhrase ) ); } return md5( $getString ); } $signature = generateSignature($data, env('PAYFAST_PASSPHRASE')); // Choose environment $payfast_url = env('PAYFAST_TESTING') || is_null(env('PAYFAST_TESTING')) ? "https://sandbox.payfast.co.za/eng/process" : "https://www.payfast.co.za/eng/process"; @endphp