[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: MolliePaymentRepository.php
<?php /** -------------------------------------------------------------------------------- * This repository class manages all the data absctration for mollie payments * * @package Grow CRM * @author NextLoop *----------------------------------------------------------------------------------*/ namespace App\Repositories; use Illuminate\Support\Str; use Log; use \Mollie\Api; class MolliePaymentRepository { /** * Inject dependecies */ public function __construct() { } /** ---------------------------------------------------- * [onetime payment] * Start the process for a single mollie payment * @param array $data information payload * @return int session id * ---------------------------------------------------*/ public function onetimePayment($data = []) { Log::info("mollie onetime payment request initiated", ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__, 'payload' => $data]); //validate if (!is_array($data)) { Log::error("invalid paymment payload data", ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__, 'payload' => $data]); abort(409, __('lang.error_request_could_not_be_completed')); } // Generate random transaction id $receipt_id = Str::random(20); //connect to mollie try { $mollie = new Api\MollieApiClient(); $mollie->setApiKey($this->getKey()); } catch (\Mollie\Api\Exceptions\ApiException $e) { Log::error("Mollie Error - " . $e->getMessage(), ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__]); return false; } catch (Exception $e) { Log::error("Mollie Error - " . $e->getMessage(), ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__]); return false; } //make a payment try { $order = $mollie->payments->create([ "amount" => [ "currency" => $data['currency'], "value" => $data['amount'], ], "description" => __('lang.invoice_payment'), "redirectUrl" => $data['thank_you_url'], "webhookUrl" => $data['webhooks_url'], ]); } catch (\Mollie\Api\Exceptions\ApiException $e) { Log::error("Mollie Error - " . $e->getMessage(), ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__]); return false; } catch (Exception $e) { Log::error("Mollie Error - " . $e->getMessage(), ['process' => '[mollie-payment]', config('app.debug_ref'), 'function' => __function__, 'file' => basename(__FILE__), 'line' => __line__, 'path' => __file__]); return false; } //save session id in sessions database $payment_session = new \App\Models\PaymentSession(); $payment_session->session_creatorid = auth()->id(); $payment_session->session_creator_fullname = auth()->user()->first_name . ' ' . auth()->user()->last_name; $payment_session->session_creator_email = auth()->user()->email; $payment_session->session_gateway_name = 'mollie'; $payment_session->session_gateway_ref = $order->id; $payment_session->session_amount = $data['amount']; $payment_session->session_invoices = $data['invoice_id']; $payment_session->save(); //return the url to redirect to mollie return $order->getCheckoutUrl(); } /** ---------------------------------------------------- * get the right key for live or sandbox mode * @return string api key * ---------------------------------------------------*/ public function getKey() { if (config('system.settings_mollie_mode') == 'live') { return config('system.settings_mollie_live_api_key'); } else { return config('system.settings_mollie_test_api_key'); } } }
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.9 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