File manager - Edit - /home/linknsbh/restawy.online/app/Http/Controllers/Payment/ToyyibpayController.php
Back
<?php namespace App\Http\Controllers\Payment; use App\Http\Controllers\Controller; use App\Models\PaymentGateway; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Session; use App\Http\Controllers\User\UserCheckoutController; use App\Http\Controllers\Front\CheckoutController; use App\Http\Helpers\UserPermissionHelper; use App\Models\Package; use App\Http\Helpers\MegaMailer; use App\Models\Language; use Carbon\Carbon; use Illuminate\Support\Facades\Auth; class ToyyibpayController extends Controller { private $information; public function __construct() { $data = PaymentGateway::whereKeyword('toyyibpay')->first(); $this->information = $data->convertAutoData(); } public function paymentProcess(Request $request, $_amount, $_success_url, $cancel_url) { if (is_null($this->information)) { session()->flash('error', 'Credentials are not set yet'); return redirect()->back(); } $price = $_amount; $price = round($price, 2); $paymentFor = Session::get('paymentFor'); if ($paymentFor == 'membership') { $fname = $request['first_name']; $lname = $request['first_name']; $email = $request['email']; $phone = $request['phone']; } else { $fname = Auth::guard('web')->user()->first_name; $lname = Auth::guard('web')->user()->last_name; $email = Auth::guard('web')->user()->email; $phone = Auth::guard('web')->user()->phone; } ################################## // Payment method info ################################## $ref = uniqid(); session()->put('toyyibpay_ref_id', $ref); $bill_description = 'Package Purchase via toyyibpay'; $some_data = array( 'userSecretKey' => $this->information['secret_key'], 'categoryCode' => $this->information['category_code'], 'billName' => 'Package Purchase', 'billDescription' => $bill_description, 'billPriceSetting' => 1, 'billPayorInfo' => 1, 'billAmount' => $_amount * 100, 'billReturnUrl' => $_success_url, 'billExternalReferenceNo' => $ref, 'billTo' => $fname . ' ' . $lname, 'billEmail' => $email, 'billPhone' => $phone, ); if ($this->information['sandbox_status'] == 1) { $host = 'https://dev.toyyibpay.com/'; // for development environment } else { $host = 'https://toyyibpay.com/'; // for production environment } $curl = curl_init(); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_URL, $host . 'index.php/api/createBill'); // sandbox will be dev. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $some_data); $result = curl_exec($curl); $info = curl_getinfo($curl); curl_close($curl); $response = json_decode($result, true); Session::put('request', $request->all()); if (!empty($response[0])) { return redirect($host . $response[0]["BillCode"]); } else { return redirect($cancel_url); } } public function successPayment(Request $request) { $requestData = Session::get('request'); $currentLang = session()->has('lang') ? (Language::where('code', session()->get('lang'))->first()) : (Language::where('is_default', 1)->first()); $be = $currentLang->basic_extended; $bs = $currentLang->basic_setting; /** clear the session payment ID **/ $cancel_url = route('membership.cancel'); $ref = session()->get('toyyibpay_ref_id'); if ($request['status_id'] == 1 && $request['order_id'] == $ref) { $paymentFor = Session::get('paymentFor'); $package = Package::find($requestData['package_id']); $transaction_id = UserPermissionHelper::uniqueId(8); $transaction_details = json_encode($request->all()); if ($paymentFor == "membership") { $amount = $requestData['price']; $password = $requestData['password']; $checkout = new CheckoutController(); $user = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $be, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "membership", $user, $password, $amount, "Yoco", $requestData['phone'], $be->base_currency_symbol_position, $be->base_currency_symbol, $be->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->first_name . ' ' . $user->last_name, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($be->base_currency_text_position == 'left' ? $be->base_currency_text . ' ' : '') . $package->price . ($be->base_currency_text_position == 'right' ? ' ' . $be->base_currency_text : ''), 'discount' => ($be->base_currency_text_position == 'left' ? $be->base_currency_text . ' ' : '') . $lastMemb->discount . ($be->base_currency_text_position == 'right' ? ' ' . $be->base_currency_text : ''), 'total' => ($be->base_currency_text_position == 'left' ? $be->base_currency_text . ' ' : '') . $lastMemb->price . ($be->base_currency_text_position == 'right' ? ' ' . $be->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'registration_with_premium_package', 'type' => 'registrationWithPremiumPackage' ]; $mailer->mailFromAdmin($data); session()->flash('success', __('successful_payment')); return redirect()->route('success.page'); } elseif ($paymentFor == "extend") { $amount = $requestData['price']; $password = uniqid('qrcode'); $checkout = new UserCheckoutController(); $user = $checkout->store($requestData, $transaction_id, $transaction_details, $amount, $be, $password); $lastMemb = $user->memberships()->orderBy('id', 'DESC')->first(); $activation = Carbon::parse($lastMemb->start_date); $expire = Carbon::parse($lastMemb->expire_date); $file_name = $this->makeInvoice($requestData, "extend", $user, $password, $amount, $requestData["payment_method"], $user->phone, $be->base_currency_symbol_position, $be->base_currency_symbol, $be->base_currency_text, $transaction_id, $package->title, $lastMemb); $mailer = new MegaMailer(); $data = [ 'toMail' => $user->email, 'toName' => $user->first_name . ' ' . $user->last_name, 'username' => $user->username, 'package_title' => $package->title, 'package_price' => ($be->base_currency_text_position == 'left' ? $be->base_currency_text . ' ' : '') . $package->price . ($be->base_currency_text_position == 'right' ? ' ' . $be->base_currency_text : ''), 'activation_date' => $activation->toFormattedDateString(), 'expire_date' => Carbon::parse($expire->toFormattedDateString())->format('Y') == '9999' ? 'Lifetime' : $expire->toFormattedDateString(), 'membership_invoice' => $file_name, 'website_title' => $bs->website_title, 'templateType' => 'membership_extend', 'type' => 'membershipExtend' ]; $mailer->mailFromAdmin($data); return redirect()->route('success.page'); } } return redirect($cancel_url); } }
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0.56 |
proxy
|
phpinfo
|
Settings