Jump to content
Posted
  • Administrators
comment_62824

6amTech Payment & SMS Gateway Addon


Introducing the new Payment & SMS Gateway addon from 6amTech. No matter where you want to run your business with 6amTech’s products, now you have multiple payment and SMS gateways to choose from. It packs with 33 payments and 14 SMS gateways. 
Note: This addon isn’t an independent product. It only works with 6amTech-developed products.

6amTech Payment and SMS Module


 

Support is available for paid files only
Support for free files is offered for a fee only

Featured Replies

comment_63553

app/Http/Controllers/Admin/AddonController.php

 

<?php

namespace App\Http\Controllers\Admin;

use App\CPU\Helpers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Validator;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Http;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Routing\Redirector;
use Illuminate\Http\RedirectResponse;

class AddonController extends Controller
{
    public function index()
    {
        $module_dir = base_path('Modules/');
        if (!File::exists($module_dir)) {
            File::makeDirectory($module_dir);
            File::chmod($module_dir, 0777);
        }

        $dir = 'Modules';
        $directories = self::getDirectories($dir);
        $addons = [];
        foreach ($directories as $directory) {
            $sub_dirs = self::getDirectories('Modules/' . $directory);
            if (in_array('Addon', $sub_dirs)) {
                $addons[] = 'Modules/' . $directory;
            }
        }
        return view('admin-views.addons.index', compact('addons'));
    }

    public function publish(Request $request): JsonResponse|int
    {
        $full_data = include($request['path'] . '/Addon/info.php');
        $path = $request['path'];
        $addon_name = $full_data['name'];
        if ($full_data['purchase_code'] == null || $full_data['username'] == null) {
            return response()->json([
                'flag' => 'inactive',
                'view' => view('admin-views.addons.partials.activation-modal-data', compact('full_data', 'path', 'addon_name'))->render(),
            ]);
        }
        $full_data['is_published'] = $full_data['is_published'] ? 0 : 1;

        $str = "<?php return " . var_export($full_data, true) . ";";
        file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);

        return response()->json([
            'status' => 'success',
            'message'=> 'status_updated_successfully'
        ]);
    }

    public function activation(Request $request): Redirector|RedirectResponse|Application
       {
        $remove = ["http://", "https://", "www."];
        $url = str_replace($remove, "", url('/'));
        $full_data = include($request['path'] . '/Addon/info.php');

        $full_data['is_published'] = 1;
        $full_data['username'] = $request['username'];
        $full_data['purchase_code'] = $request['purchase_code'];
        $str = "<?php return " . var_export($full_data, true) . ";";
        file_put_contents(base_path($request['path'] . '/Addon/info.php'), $str);

        Toastr::success(translate('activated_successfully'));
        return back();
    }

    public function upload(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'file_upload' => 'required|mimes:zip'
        ]);

        if ($validator->errors()->count() > 0) {
            $error = Helpers::error_processor($validator);
            return response()->json(['status' => 'error', 'message' => $error[0]['message']]);
        }

        $extractPath = storage_path('app/temp/');
        if (!File::exists($extractPath)) {
            File::makeDirectory($extractPath);
        }

        $file = $request->file('file_upload');
        $filename = $file->getClientOriginalName();
        $tempPath = $file->storeAs('temp', $filename);
        $zip = new \ZipArchive();

        if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) {
            // Extract the contents to a directory
            $zip->extractTo($extractPath);
            $zip->close();
            Storage::delete($tempPath);

            if(File::exists($extractPath.'/'.explode('.', $filename)[0].'/Addon/info.php')){

                $moveToPath = base_path('Modules/');
                if (!File::exists($moveToPath)) {
                    File::makeDirectory($moveToPath);
                }

                if (File::exists($moveToPath.'/'.explode('.', $filename)[0])) {
                    Toastr::warning(translate('already_installed!'));
                    $message = translate('already_installed');
                    $status = 'error';
                }else{
                    File::copyDirectory($extractPath, $moveToPath);
                    File::chmod($moveToPath, 0777);
                    File::chmod($moveToPath.'/'.explode('.', $filename)[0], 0777);
                    File::chmod($moveToPath.'/'.explode('.', $filename)[0].'/Addon', 0777);
                    Toastr::success(translate('file_upload_successfully!'));
                    $status = 'success';
                    $message = translate('file_upload_successfully!');
                }
            }else{
                File::deleteDirectory($extractPath.'/'.explode('.', $filename)[0]);
                $status = 'error';
                $message = translate('invalid_file!');
            }
        }else{
            $status = 'error';
            $message = translate('file_upload_fail!');
        }

        File::deleteDirectory($extractPath);

        return response()->json([
            'status' => $status,
            'message'=> $message
        ]);
    }

    public function delete_theme(Request $request){
        $path = $request->path;

        $full_path = base_path($path);

        $old = base_path('app/Traits/Payment.php');
        $new = base_path('app/Traits/Payment.txt');
        copy($new, $old);

        if(File::deleteDirectory($full_path)){
            return response()->json([
                'status' => 'success',
                'message'=> translate('file_delete_successfully')
            ]);
        }else{
            return response()->json([
                'status' => 'error',
                'message'=> translate('file_delete_fail')
            ]);
        }
    }

    //helper functions
    function getDirectories(string $path): array
    {
        $directories = [];
        $items = scandir($path);
        foreach ($items as $item) {
            if ($item == '..' || $item == '.')
                continue;
            if (is_dir($path . '/' . $item))
                $directories[] = $item;
        }
        return $directories;
    }
}

 

  • 3 weeks later...
  • 2 months later...
  • 2 months later...
comment_70962
On 3/31/2024 at 9:51 PM, Omezah said:

@Xtreme Royals Technologies country code so I can chat you on Whatsapp I need your assistance@diskless cafe same issue here 

country code +90 turkey

On 3/31/2024 at 9:51 PM, Omezah said:

@Xtreme Royals Technologies country code so I can chat you on Whatsapp I need your assistance@diskless cafe same issue here 

country code +90 turkey

  • Mahmoud changed the title to 6amTech Payment & SMS Gateway Addon v1.2

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Latest Updated Files