Viewing file: MolliePayment.php (4.43 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\PaymentGateway\WHNPurchaseGateway;
use App\Models\BillingRequest; use App\Models\Customer; use App\Models\Number; use App\Models\NumberRequest; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log;
class MolliePayment implements PaymentInterface { public $numberReq; public $redirect_url; public $error_message; public $return_view; public $will_redirect= false;
public function __construct() {
}
public function pay() { // TODO: Implement pay() method. }
public function getCredentials() { $credentials = json_decode(get_settings('payment_gateway'));
if (!isset($credentials->mollie_status) || !$credentials->mollie_api_key || $credentials->mollie_status != 'active') { throw new \Exception('Credentials not found. Please contact with the administrator'); } return $credentials; }
public function request($request) { $this->request = $request; return $this; }
public function number($number) { $this->number = $number; return $this; }
public function number_request($numberReq) { $this->numberReq = $numberReq; return $this; }
public function will_redirect() { // TODO: Implement will_redirect() method. return $this->will_redirect; }
public function redirect_url() { // TODO: Implement redirect_url() method. return $this->redirect_url; } public function return_view() { // TODO: Implement redirect_url() method. return $this->return_view; } public function error_message() { // TODO: Implement error_message() method. return $this->error_message; }
public function process() { $mollieData = $this->molliePayment($this->numberReq); if ($mollieData && $mollieData->id) { $this->redirect_url = $mollieData->getCheckoutUrl(); $this->will_redirect = true; $this->return_view = null; } }
function molliePayment($numberReq) {
$credentials = $this->getCredentials();
if (!isset($credentials->mollie_status) || !$credentials->mollie_api_key || $credentials->mollie_status != 'active') { throw new \Exception(trans('Invalid Payment')); }
$mollie = new \Mollie\Api\MollieApiClient(); $mollie->setApiKey($credentials->mollie_api_key); $payment = $mollie->payments->create([ "amount" => [ "currency" => 'USD', "value" => $numberReq->sell_price . "" ], "description" => "For number upgrade #" . $numberReq->id, "redirectUrl" => route('paymentgateway::payment.number.mollie.success'), "webhookUrl" => route('paymentgateway::payment.number.changenumber.mollie.webhook', ['id' => $numberReq->id]), ]);
return $payment; }
public function processMollieSuccess() { return redirect()->route('customer.numbers.purchase')->with('success', trans('Congratulations! Your number successfully purchase')); }
public function processMollieWebhook($number_request, Request $request) { if (!$number_request) { Log::info("user number not found"); exit; };
$numberRequest = NumberRequest::find($number_request);
if (!$numberRequest) { Log::info("Number Request not found -" . $numberRequest); exit; }; $customer=Customer::find($numberRequest->customer_id); $number=Number::find($numberRequest->number_id); $numberRequest->status = 'accepted'; $numberRequest->save(); if (isset($number) && isset($customer)) { $time = Carbon::now()->addMonths(1); $customer->numbers()->create(['number_id' => $number->id, 'number' => $number->number, 'expire_date' => $time, 'cost' => $number->sell_price]); }
$credentials = json_decode(get_settings('payment_gateway'));
if (!isset($credentials->mollie_status) || !$credentials->mollie_api_key || $credentials->mollie_status != 'active') { Log::info(trans('Invalid Payment')); exit(); }
$mollie = new \Mollie\Api\MollieApiClient(); $mollie->setApiKey($credentials->mollie_api_key); $payment = $mollie->payments->get($request->id);
}
}
|