/home/techb158/immovalet.com/platform/plugins/payment/src/Http/Controllers
NameSizeModeActions
PaymentController.php118940644editdlrm
Edit: /home/techb158/immovalet.com/platform/plugins/payment/src/Http/Controllers/PaymentController.php (11894B)
payPalService = $payPalService; $this->stripePaymentService = $stripePaymentService; $this->paymentRepository = $paymentRepository; $this->returnUrl = config('plugins.payment.payment.return_url_after_payment'); $this->codPaymentService = $codPaymentService; $this->bankTransferPaymentService = $bankTransferPaymentService; } /** * @param PaymentTable $dataTable * @return Factory|View * @throws Throwable */ public function index(PaymentTable $table) { page_title()->setTitle(trans('plugins/payment::payment.name')); return $table->renderTable(); } /** * @param int $id * @param Request $request * @return BaseHttpResponse */ public function destroy(Request $request, $id, BaseHttpResponse $response) { try { $payment = $this->paymentRepository->findOrFail($id); $this->paymentRepository->delete($payment); event(new DeletedContentEvent(PAYMENT_MODULE_SCREEN_NAME, $request, $payment)); return $response->setMessage(trans('core/base::notices.delete_success_message')); } catch (Exception $exception) { return $response ->setError() ->setMessage($exception->getMessage()); } } /** * @param Request $request * @param BaseHttpResponse $response * @return BaseHttpResponse * @throws Exception */ public function deletes(Request $request, BaseHttpResponse $response) { $ids = $request->input('ids'); if (empty($ids)) { return $response ->setError() ->setMessage(trans('core/base::notices.no_select')); } foreach ($ids as $id) { $payment = $this->paymentRepository->findOrFail($id); $this->paymentRepository->delete($payment); event(new DeletedContentEvent(PAYMENT_MODULE_SCREEN_NAME, $request, $payment)); } return $response->setMessage(trans('core/base::notices.delete_success_message')); } /** * @param CheckoutRequest $request * @return \Illuminate\Contracts\Foundation\Application|RedirectResponse|Redirector */ public function postCheckout(CheckoutRequest $request) { $returnUrl = $request->input('return_url'); $currency = $request->input('currency', config('plugins.payment.payment.currency')); $currency = strtoupper($currency); $data = [ 'error' => false, 'message' => false, 'amount' => $request->input('amount'), 'currency' => $currency, 'type' => $request->input('payment_method'), ]; switch ($request->input('payment_method')) { case PaymentMethodEnum::STRIPE: $result = $this->stripePaymentService->execute($request); if ($this->stripePaymentService->getErrorMessage()) { $data['error'] = true; $data['message'] = $this->stripePaymentService->getErrorMessage(); } $data['charge_id'] = $result; break; case PaymentMethodEnum::PAYPAL: $checkoutUrl = $this->payPalService->execute($request); if ($checkoutUrl) { return redirect($checkoutUrl); } $data['error'] = true; $data['message'] = $this->payPalService->getErrorMessage(); break; case PaymentMethodEnum::COD: $chargeId = $this->codPaymentService->execute($request); return redirect()->to($returnUrl . '?charge_id=' . $chargeId)->with('success_msg', trans('plugins/payment::payment.payment_pending')); case PaymentMethodEnum::BANK_TRANSFER: $chargeId = $this->bankTransferPaymentService->execute($request); return redirect()->to($returnUrl . '?charge_id=' . $chargeId)->with('success_msg', trans('plugins/payment::payment.payment_pending')); default: $data = apply_filters(PAYMENT_FILTER_AFTER_POST_CHECKOUT, $data, $request); break; } if ($data['error']) { return redirect()->back()->with('error_msg', $data['message'])->withInput($request->input()); } $callbackUrl = $request->input('callback_url') . '?' . http_build_query($data); return redirect()->to($callbackUrl)->with('success_msg', trans('plugins/payment::payment.checkout_success')); } /** * @param PayPalPaymentCallbackRequest $request * @param PayPalPaymentService $palPaymentService * @param BaseHttpResponse $response * @return BaseHttpResponse * @throws Throwable */ public function getPayPalStatus( PayPalPaymentCallbackRequest $request, PayPalPaymentService $palPaymentService, BaseHttpResponse $response ) { $palPaymentService->afterMakePayment($request); return $response ->setNextUrl(route('public.index')) ->setMessage(__('Checkout successfully!')); } /** * @param int $id * @return Factory|View * @throws Exception * @throws Throwable */ public function show($id) { $payment = $this->paymentRepository->findOrFail($id); $detail = null; switch ($payment->payment_channel) { case PaymentMethodEnum::PAYPAL: $paymentDetail = $this->payPalService->getPaymentDetails($payment->charge_id); $detail = view('plugins/payment::paypal.detail', ['payment' => $paymentDetail])->render(); break; case PaymentMethodEnum::STRIPE: $paymentDetail = $this->stripePaymentService->getPaymentDetails($payment->charge_id); $detail = view('plugins/payment::stripe.detail', ['payment' => $paymentDetail])->render(); break; case PaymentMethodEnum::COD: case PaymentMethodEnum::BANK_TRANSFER: break; default: $detail = apply_filters(PAYMENT_FILTER_PAYMENT_INFO_DETAIL, null, $payment); break; } $paymentStatuses = PaymentStatusEnum::labels(); if ($payment->status != PaymentStatusEnum::PENDING) { Arr::forget($paymentStatuses, PaymentStatusEnum::PENDING); } return view('plugins/payment::show', compact('payment', 'detail', 'paymentStatuses')); } /** * @return Factory|View */ public function methods() { page_title()->setTitle(trans('plugins/payment::payment.payment_methods')); Assets::addStylesDirectly('vendor/core/plugins/payment/css/payment-methods.css') ->addScriptsDirectly('vendor/core/plugins/payment/js/payment-methods.js'); return view('plugins/payment::settings.index'); } /** * @param Request $request * @param BaseHttpResponse $response * @param SettingStore $settingStore * @return BaseHttpResponse */ public function updateSettings(Request $request, BaseHttpResponse $response, SettingStore $settingStore) { $data = $request->except(['_token']); foreach ($data as $settingKey => $settingValue) { $settingStore ->set($settingKey, $settingValue); } $settingStore->save(); return $response->setMessage(trans('plugins/payment::payment.saved_payment_settings_success')); } /** * @param PaymentMethodRequest $request * @param BaseHttpResponse $response * @param SettingStore $settingStore * @return BaseHttpResponse */ public function updateMethods(PaymentMethodRequest $request, BaseHttpResponse $response, SettingStore $settingStore) { $type = $request->input('type'); $data = $request->except(['_token', 'type']); foreach ($data as $settingKey => $settingValue) { $settingStore ->set($settingKey, $settingValue); } $settingStore ->set('payment_' . $type . '_status', 1) ->save(); return $response->setMessage(trans('plugins/payment::payment.saved_payment_method_success')); } /** * @param Request $request * @param BaseHttpResponse $response * @param SettingStore $settingStore * @return BaseHttpResponse */ public function updateMethodStatus(Request $request, BaseHttpResponse $response, SettingStore $settingStore) { $settingStore ->set('payment_' . $request->input('type') . '_status', 0) ->save(); return $response->setMessage(trans('plugins/payment::payment.turn_off_success')); } /** * @param $id * @param UpdatePaymentRequest $request * @param BaseHttpResponse $response * @return BaseHttpResponse */ public function update($id, UpdatePaymentRequest $request, BaseHttpResponse $response) { $payment = $this->paymentRepository->findOrFail($id); $this->paymentRepository->update(['id' => $payment->id], [ 'status' => $request->input('status'), ]); do_action(ACTION_AFTER_UPDATE_PAYMENT, $request, $payment); return $response ->setPreviousUrl(route('payment.show', $payment->id)) ->setMessage(trans('core/base::notices.update_success_message')); } }