App\Http\Controllers\OnlinePaymentController::showPayment PHP Method

showPayment() public method

public showPayment ( $invitationKey, $gatewayTypeAlias = false, boolean $sourceId = false ) : Illuminate\Http\RedirectResponse
$invitationKey
$sourceId boolean
return Illuminate\Http\RedirectResponse
    public function showPayment($invitationKey, $gatewayTypeAlias = false, $sourceId = false)
    {
        if (!($invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey))) {
            return response()->view('error', ['error' => trans('texts.invoice_not_found'), 'hideHeader' => true]);
        }
        if (!$invitation->invoice->canBePaid()) {
            return redirect()->to('view/' . $invitation->invitation_key);
        }
        $invitation = $invitation->load('invoice.client.account.account_gateways.gateway');
        $account = $invitation->account;
        $account->loadLocalizationSettings($invitation->invoice->client);
        if (!$gatewayTypeAlias) {
            $gatewayTypeId = Session::get($invitation->id . 'gateway_type');
        } elseif ($gatewayTypeAlias != GATEWAY_TYPE_TOKEN) {
            $gatewayTypeId = GatewayType::getIdFromAlias($gatewayTypeAlias);
        } else {
            $gatewayTypeId = $gatewayTypeAlias;
        }
        $paymentDriver = $account->paymentDriver($invitation, $gatewayTypeId);
        try {
            return $paymentDriver->startPurchase(Input::all(), $sourceId);
        } catch (Exception $exception) {
            return $this->error($paymentDriver, $exception);
        }
    }