/** * Stores new account * */ public function save($accountGatewayPublicId = false) { $rules = array(); $paymentType = Input::get('payment_type_id'); $gatewayId = Input::get('gateway_id'); if ($paymentType == PAYMENT_TYPE_PAYPAL) { $gatewayId = GATEWAY_PAYPAL_EXPRESS; } elseif ($paymentType == PAYMENT_TYPE_BITCOIN) { $gatewayId = GATEWAY_BITPAY; } elseif ($paymentType == PAYMENT_TYPE_DIRECT_DEBIT) { $gatewayId = GATEWAY_GOCARDLESS; } elseif ($paymentType == PAYMENT_TYPE_DWOLLA) { $gatewayId = GATEWAY_DWOLLA; } if (!$gatewayId) { Session::flash('error', trans('validation.required', ['attribute' => 'gateway'])); return Redirect::to('gateways/create')->withInput(); } $gateway = Gateway::findOrFail($gatewayId); $fields = $gateway->getFields(); $optional = array_merge(Gateway::$hiddenFields, Gateway::$optionalFields); if ($gatewayId == GATEWAY_DWOLLA) { $optional = array_merge($optional, ['key', 'secret']); } elseif ($gatewayId == GATEWAY_STRIPE) { $rules['publishable_key'] = 'required'; } foreach ($fields as $field => $details) { if (!in_array($field, $optional)) { if (strtolower($gateway->name) == 'beanstream') { if (in_array($field, ['merchant_id', 'passCode'])) { $rules[$gateway->id . '_' . $field] = 'required'; } } else { $rules[$gateway->id . '_' . $field] = 'required'; } } } $creditcards = Input::get('creditCardTypes'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('gateways/create')->withErrors($validator)->withInput(); } else { $account = Account::with('account_gateways')->findOrFail(Auth::user()->account_id); $oldConfig = null; if ($accountGatewayPublicId) { $accountGateway = AccountGateway::scope($accountGatewayPublicId)->firstOrFail(); $oldConfig = $accountGateway->getConfig(); } else { $accountGateway = AccountGateway::createNew(); $accountGateway->gateway_id = $gatewayId; } $config = new stdClass(); foreach ($fields as $field => $details) { $value = trim(Input::get($gateway->id . '_' . $field)); // if the new value is masked use the original value if ($oldConfig && $value && $value === str_repeat('*', strlen($value))) { $value = $oldConfig->{$field}; } if (!$value && ($field == 'testMode' || $field == 'developerMode')) { // do nothing } else { $config->{$field} = $value; } } $publishableKey = Input::get('publishable_key'); if ($publishableKey = str_replace('*', '', $publishableKey)) { $config->publishableKey = $publishableKey; } elseif ($oldConfig && property_exists($oldConfig, 'publishableKey')) { $config->publishableKey = $oldConfig->publishableKey; } $cardCount = 0; if ($creditcards) { foreach ($creditcards as $card => $value) { $cardCount += intval($value); } } $accountGateway->accepted_credit_cards = $cardCount; $accountGateway->show_address = Input::get('show_address') ? true : false; $accountGateway->update_address = Input::get('update_address') ? true : false; $accountGateway->setConfig($config); if ($accountGatewayPublicId) { $accountGateway->save(); } else { $account->account_gateways()->save($accountGateway); } if (Input::get('token_billing_type_id')) { $account->token_billing_type_id = Input::get('token_billing_type_id'); $account->save(); } if ($accountGatewayPublicId) { $message = trans('texts.updated_gateway'); } else { $message = trans('texts.created_gateway'); } Session::flash('message', $message); return Redirect::to("gateways/{$accountGateway->public_id}/edit"); } }
public function resendConfirmation($publicId = false) { $accountGateway = AccountGateway::scope($publicId)->firstOrFail(); if ($accountGateway->gateway_id == GATEWAY_WEPAY) { try { $wepay = Utils::setupWePay($accountGateway); $wepay->request('user/send_confirmation', []); Session::flash('message', trans('texts.resent_confirmation_email')); } catch (\WePayException $e) { Session::flash('error', $e->getMessage()); } } return Redirect::to("gateways/{$accountGateway->public_id}/edit"); }
/** * @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse */ private function showOnlinePayments() { $account = Auth::user()->account; $account->load('account_gateways'); $count = count($account->account_gateways); $trashedCount = AccountGateway::scope()->withTrashed()->count(); if ($accountGateway = $account->getGatewayConfig(GATEWAY_STRIPE)) { if (!$accountGateway->getPublishableStripeKey()) { Session::flash('warning', trans('texts.missing_publishable_key')); } } if ($trashedCount == 0) { return Redirect::to('gateways/create'); } else { $tokenBillingOptions = []; for ($i = 1; $i <= 4; $i++) { $tokenBillingOptions[$i] = trans("texts.token_billing_{$i}"); } return View::make('accounts.payments', ['showAdd' => $count < count(Gateway::$alternate) + 1, 'title' => trans('texts.online_payments'), 'tokenBillingOptions' => $tokenBillingOptions, 'currency' => Utils::getFromCache(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY), 'currencies'), 'account' => $account]); } }
/** * Stores new account * */ public function save($accountGatewayPublicId = false) { $rules = array(); $paymentType = Input::get('payment_type_id'); $gatewayId = Input::get('gateway_id'); if ($paymentType == PAYMENT_TYPE_PAYPAL) { $gatewayId = GATEWAY_PAYPAL_EXPRESS; } elseif ($paymentType == PAYMENT_TYPE_BITCOIN) { $gatewayId = GATEWAY_BITPAY; } if (!$gatewayId) { Session::flash('error', trans('validation.required', ['attribute' => 'gateway'])); return Redirect::to('gateways/create')->withInput(); } $gateway = Gateway::findOrFail($gatewayId); $fields = $gateway->getFields(); foreach ($fields as $field => $details) { if (!in_array($field, ['testMode', 'developerMode', 'headerImageUrl', 'solutionType', 'landingPage', 'brandName', 'logoImageUrl', 'borderColor'])) { if (strtolower($gateway->name) == 'beanstream') { if (in_array($field, ['merchant_id', 'passCode'])) { $rules[$gateway->id . '_' . $field] = 'required'; } } else { $rules[$gateway->id . '_' . $field] = 'required'; } } } $creditcards = Input::get('creditCardTypes'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('gateways/create')->withErrors($validator)->withInput(); } else { $account = Account::with('account_gateways')->findOrFail(Auth::user()->account_id); $oldConfig = null; if ($accountGatewayPublicId) { $accountGateway = AccountGateway::scope($accountGatewayPublicId)->firstOrFail(); $oldConfig = json_decode($accountGateway->config); } else { $accountGateway = AccountGateway::createNew(); $accountGateway->gateway_id = $gatewayId; } $config = new stdClass(); foreach ($fields as $field => $details) { $value = trim(Input::get($gateway->id . '_' . $field)); // if the new value is masked use the original value if ($value && $value === str_repeat('*', strlen($value))) { $value = $oldConfig->{$field}; } if (!$value && ($field == 'testMode' || $field == 'developerMode')) { // do nothing } else { $config->{$field} = $value; } } $cardCount = 0; if ($creditcards) { foreach ($creditcards as $card => $value) { $cardCount += intval($value); } } $accountGateway->accepted_credit_cards = $cardCount; $accountGateway->config = json_encode($config); if ($accountGatewayPublicId) { $accountGateway->save(); } else { $account->account_gateways()->save($accountGateway); } if (Input::get('token_billing_type_id')) { $account->token_billing_type_id = Input::get('token_billing_type_id'); $account->save(); } if ($accountGatewayPublicId) { $message = trans('texts.updated_gateway'); } else { $message = trans('texts.created_gateway'); } Session::flash('message', $message); return Redirect::to('company/payments'); } }