public function createPayment(Request $request) { Auth::user(); $order_id = session('order_id'); $order = Order::find($order_id); if ($order) { $user = $order->id; $sum = $order->sum; $mrh_login = env('ROBOKASSA_LOGIN'); $mrh_pass1 = env('ROBOKASSA_PASSWORD'); $invoice_id = mt_rand(); $inv_desc = 'Пополнение баланса'; $crc = md5($mrh_login . ":" . $sum . ":" . $invoice_id . ":" . $mrh_pass1); if ($sum != 0) { try { DB::beginTransaction(); $payment = new Payment(); $payment->uid = $invoice_id; $payment->user_id = $user; $payment->balance = $sum; $payment->description = $inv_desc; $payment->operation = '+'; $payment->save(); DB::commit(); } catch (\PDOException $e) { print $e->getMessage(); DB::connection()->getPdo()->rollBack(); } } echo 'ok'; return 1; header("Location: https://auth.robokassa.ru/Merchant/Index.aspx?MrchLogin={$mrh_login}&OutSum={$sum}&InvId={$invoice_id}&Desc={$inv_desc}&SignatureValue={$crc}"); } }
private function create_payment($order_id) { $order = Order::find($order_id); if ($order) { $user = $order->user_id; $sum = $order->sum; $mrh_login = env('ROBOKASSA_LOGIN'); $mrh_pass1 = env('ROBOKASSA_PASSWORD'); $invoice_id = mt_rand(); $inv_desc = 'Пополнение баланса'; $crc = md5($mrh_login . ":" . $sum . ":" . $invoice_id . ":" . $mrh_pass1); if ($sum != 0) { try { DB::beginTransaction(); $payment = new Payment(); $payment->uid = $invoice_id; $payment->order_id = $order_id; $payment->user_id = $user; $payment->sum = $sum; $payment->description = $inv_desc; $payment->operation = '+'; $payment->payment_type = $order->payment_type; $payment->save(); DB::commit(); } catch (\PDOException $e) { print $e->getMessage(); DB::connection()->getPdo()->rollBack(); } } $redirect_url = "https://auth.robokassa.ru/Merchant/Index.aspx?MrchLogin={$mrh_login}&OutSum={$sum}&InvId={$invoice_id}&Desc={$inv_desc}&SignatureValue={$crc}&IsTest=1"; return $redirect_url; } return Redirect::to('/')->with('message', 'Ошибка'); }
public function createPayment(Request $request) { \Auth::user(); $user = $request->user()->id; $sum = $request->get('OutSum'); $mrh_login = config('roboconfig.login'); $mrh_pass1 = config('roboconfig.password1'); $inv_id = mt_rand(); $inv_desc = 'Пополнение баланса'; $crc = md5($mrh_login . ":" . $sum . ":" . $inv_id . ":" . $mrh_pass1); if ($sum != 0) { try { DB::beginTransaction(); $payment = new Payment(); $payment->uid = $inv_id; $payment->user_id = $user; $payment->balance = $sum; $payment->description = $inv_desc; $payment->operation = '+'; $payment->save(); DB::commit(); } catch (\PDOException $e) { print $e->getMessage(); DB::connection()->getPdo()->rollBack(); } } /* return redirect()->action('ZaLaravel\LaravelRobokassa\Controllers\IpnRobokassaController@getResult', array('OutSum' => $sum, 'InvId' => $inv_id, 'SignatureValue' => $crc));*/ header("Location: https://auth.robokassa.ru/Merchant/Index.aspx?MrchLogin={$mrh_login}&OutSum={$sum}&InvId={$inv_id}&Desc={$inv_desc}&SignatureValue={$crc}"); }
/** * Store a newly created payment in storage. * * @return Response */ public function store(PaymentRequest $request) { $payment = new Payment(); $payment->patient_id = $request->patient_id; $payment->charge_id = $request->charge_id; $payment->full_amount = $request->full_amount; $payment->amount_paid = $request->amount_paid; $payment->save(); $url = session('SOURCE_URL'); return redirect()->to($url)->with('message', trans('terms.record-successfully-saved'))->with('active_payment', $payment->id); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StorePaymentRequest $request, $event_id) { $user_id = Auth::user()->id; $input = $request->all(); if ($input['paid'] > $input['debt']) { Session::flash('message', 'El monto excede el monto de la deuda'); Session::flash('alert-class', 'alert-danger'); return redirect('promoter/transfer_payments/' . $event_id . '/create'); } $payment = new Payment(); $payment->event_id = $event_id; $payment->promoter_id = $user_id; $payment->paid = $input['paid']; $payment->save(); Session::flash('message', 'Pago a organizador realizado!'); Session::flash('alert-class', 'alert-success'); return redirect('/promoter/transfer_payments'); }
public function createPayment(Request $request) { $user = $request->user()->id; $sum = $request->get('OutSum'); $mrh_login = config('roboconfig.testLogin'); $mrh_pass1 = config('roboconfig.testPassword1'); $inv_id = mt_rand(); $inv_desc = 'Пополнение баланса'; $crc = md5("{$mrh_login}:{$sum}:{$inv_id}:{$mrh_pass1}"); if ($sum != 0) { $payment = new Payment(); $payment->uid = $inv_id; $payment->user_id = $user; $payment->balance = $sum; $payment->description = $inv_desc; $payment->operation = '+'; $payment->save(); } return redirect()->action('ZaLaravel\\LaravelRobokassa\\Controllers\\IpnRobokassaController@getResult', array('OutSum' => $sum, 'InvId' => $inv_id)); // header("Location: http://test.robokassa.ru/Index.aspx?MrchLogin=$mrh_login&OutSum=$sum&InvId=$inv_id&Desc=$inv_desc&SignatureValue=$crc"); }
public function createPayment(Request $request) { \Auth::user(); $user = $request->user()->id; $m_shop = '75722594'; $m_orderid = mt_rand(); $m_amount = number_format($request->get('OutSum'), 2, '.', ''); $m_curr = 'RUB'; $m_desc = base64_encode('Пополнение баланса'); $m_key = 'halyava'; $arHash = array($m_shop, $m_orderid, $m_amount, $m_curr, $m_desc, $m_key); $sign = strtoupper(hash('sha256', implode(':', $arHash))); //dd($sign); if ($m_amount != 0) { try { DB::beginTransaction(); $payment = new Payment(); $payment->uid = $m_orderid; $payment->user_id = $user; $payment->balance = $m_amount; $payment->description = base64_decode($m_desc); $payment->operation = '+'; $payment->save(); DB::commit(); } catch (\PDOException $e) { print $e->getMessage(); DB::connection()->getPdo()->rollBack(); } } /*return redirect()->action('ZaLaravel\LaravelPayeer\Controllers\IpnPayeerController@getResult', array('m_shop' => $m_shop, 'm_amount' => $m_amount, 'm_orderid' => $m_orderid, 'm_curr' => $m_curr, 'm_desc' => $m_desc, 'm_sign' => $sign));*/ header("Location:https://payeer.com/merchant/?m_shop={$m_shop}&m_orderid={$m_orderid}&m_amount={$m_amount}&m_curr={$m_curr}&m_desc={$m_desc}&m_sign={$sign}"); }
/** * * @return Response */ public function studentEditSubmit($id) { $student = Student::findOrFail($id); // WEI payment form if (Request::has(['wei', 'sandwich', 'wei-total'])) { $input = Request::only(['wei', 'sandwich', 'wei-total', 'mean', 'cash-number', 'cash-color', 'check-number', 'check-bank', 'check-name', 'check-write', 'card-write']); $rules = ['wei' => 'required', 'sandwich' => 'required', 'wei-total' => 'required', 'mean' => 'required|in:card,check,cash']; $informations = []; switch ($input['mean']) { case 'card': $rules['card-write'] = 'accepted'; break; case 'cash': $rules['cash-number'] = 'required'; $rules['cash-color'] = 'required'; $informations = Request::only(['cash-number', 'cash-color']); break; case 'check': $rules['check-number'] = 'required'; $rules['check-bank'] = 'required'; $rules['check-name'] = 'required'; $rules['check-write'] = 'accepted'; $informations = Request::only(['check-number', 'check-bank', 'check-name']); break; } $this->validate(Request::instance(), $rules, ['mean.required' => 'Le champ Moyen de paiement est obligatoire.', 'card-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le ticket de CB', 'check-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le chèque', 'check-number.required' => 'Le champ Numéro de chèque est obligatoire.', 'check-bank.required' => 'Le champ Banque du chèque est obligatoire.', 'check-name.required' => 'Le champ Émetteur du chèque est obligatoire.', 'cash-number.required' => 'Le champ Numéro de caisse est obligatoire.', 'cash-color.required' => 'Le champ Couleur de caisse est obligatoire.']); // Check errors $oldSandwich = $student->sandwichPayment && in_array($student->sandwichPayment->state, ['paid']) ? 1 : 0; $oldWei = $student->weiPayment && in_array($student->weiPayment->state, ['paid']) ? 1 : 0; $sandwich = $input['sandwich'] ? 1 : 0; $wei = $input['wei'] ? 1 : 0; if ($input['sandwich'] && $oldSandwich) { return Redirect::back()->withError('Vous ne pouvez pas prendre un deuxieme panier repas')->withInput(); } if ($input['wei'] && $oldWei) { return Redirect::back()->withError('Vous ne pouvez pas prendre un deuxieme weekend d\'intégration')->withInput(); } if (!$input['wei'] && !$oldWei && $input['sandwich']) { return Redirect::back()->withError('Vous ne pouvez pas prendre un panier repas sans prendre le weekend')->withInput(); } //calculate price $price = Config::get('services.wei.price-other'); if ($student->ce && $student->team_accepted && $student->team_id) { $price = Config::get('services.wei.price-ce'); } elseif ($student->orga) { $price = Config::get('services.wei.price-orga'); } // Calculate amount $amount = ($sandwich * Config::get('services.wei.sandwichPrice') + $wei * $price) * 100; if ($amount / 100 != $input['wei-total']) { return Redirect::back()->withError('Erreur interne sur le calcul des montants, contactez un administrateur')->withInput(); } // Create payment $payment = new Payment(['type' => 'payment', 'mean' => $input['mean'], 'amount' => $amount, 'state' => 'paid', 'informations' => $informations]); $payment->save(); // Save paiement in user object $user = $student; if ($wei) { $user->wei_payment = $payment->id; } if ($sandwich) { $user->sandwich_payment = $payment->id; } $user->updateWei(); $user->save(); return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withSuccess('Vos modifications ont été enregistrées.'); } // Guarantee payment form if (Request::has(['guarantee', 'guarantee-total'])) { $input = Request::only(['guarantee', 'guarantee-total', 'check2-number', 'check2-bank', 'check2-name', 'check2-write']); $informations = Request::only(['check-number', 'check-bank', 'check-name']); $this->validate(Request::instance(), ['guarantee' => 'required', 'guarantee-total' => 'required', 'check2-number' => 'required', 'check2-bank' => 'required', 'check2-name' => 'required', 'check2-write' => 'accepted'], ['check2-write.accepted' => 'Vous devez avoir écris le numéro indiqué derrière le chèque', 'check2-number.required' => 'Le champ Numéro de chèque est obligatoire.', 'check2-bank.required' => 'Le champ Banque du chèque est obligatoire.', 'check2-name.required' => 'Le champ Émetteur du chèque est obligatoire.']); // Check errors $oldGuarantee = $student->guaranteePayment && in_array($student->guaranteePayment->state, ['paid']) ? 1 : 0; $guarantee = $input['guarantee'] ? 1 : 0; if ($input['guarantee'] && $oldGuarantee) { return Redirect::back()->withError('Vous ne pouvez pas payer deux fois la caution')->withInput(); } // Calculate amount $amount = $guarantee * Config::get('services.wei.guaranteePrice') * 100; if ($amount / 100 != $input['guarantee-total']) { return Redirect::back()->withError('Erreur interne sur le calcul des montants, contactez un administrateur')->withInput(); } // Create payment $payment = new Payment(['type' => 'guarantee', 'mean' => 'check', 'amount' => $amount, 'state' => 'paid', 'informations' => $informations]); $payment->save(); // Save paiement in user object if ($guarantee) { $student->guarantee_payment = $payment->id; } $student->updateWei(); $student->save(); return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withSuccess('Vos modifications ont été enregistrées.'); } return Redirect(route('dashboard.wei.student.edit', ['id' => $student->student_id]))->withError('Y\'a un soucis !'); }
public function store(MakePaymentRequest $request) { try { DB::transaction(function () use($request) { $payment = new Payment(); $currentYear = CommonHelper::get_current_financial_year(); $payment->to_whom_type = $request->to_whom_type; $payment->to_whom = $request->to_whom; $payment->total_amount = $request->total_amount; $payment->amount = $request->amount; $payment->transaction_detail = $request->transaction_detail; $payment->date = $request->date; $payment->year = $currentYear; $payment->workspace_id = Auth::user()->workspace_id; $payment->account_code = $request->account_code; $payment->voucher_no = $request->voucher_no; $payment->created_by = Auth::user()->id; $payment->created_at = time(); $payment->save(); // IMPACTS ON ACCOUNTING TABLES $workspace_id = Auth::user()->workspace_id; $cashCode = 11000; $accountPayableCode = 41000; $transaction_type = Config::get('common.transaction_type.payment'); // Workspace Ledger Account Payable Debit(-) $accountReceivableWorkspaceData = WorkspaceLedger::where(['workspace_id' => $workspace_id, 'account_code' => $accountPayableCode, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $currentYear])->first(); $accountReceivableWorkspaceData->balance -= $request->amount; $accountReceivableWorkspaceData->update(); // Workspace Ledger Cash Credit(-) $cashWorkspaceData = WorkspaceLedger::where(['workspace_id' => $workspace_id, 'account_code' => $cashCode, 'balance_type' => Config::get('common.balance_type_intermediate'), 'year' => $currentYear])->first(); $cashWorkspaceData->balance += $request->amount; $cashWorkspaceData->update(); // Personal Account balance(-) $person_type = $request->to_whom_type; $person_id = $request->to_whom; $personData = PersonalAccount::where(['person_id' => $person_id, 'person_type' => $person_type])->first(); $personData->balance -= $request->amount; $personData->update(); // General Journals Account Payable Debit $generalJournal = new GeneralJournal(); $generalJournal->date = strtotime($request->date); $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $payment->id; $generalJournal->year = $currentYear; $generalJournal->account_code = $accountPayableCode; $generalJournal->workspace_id = $workspace_id; $generalJournal->amount = $request->amount; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.debit'); $generalJournal->created_by = Auth::user()->id; $generalJournal->created_at = time(); $generalJournal->save(); // General Journals Cash Credit $generalJournal = new GeneralJournal(); $generalJournal->date = strtotime($request->date); $generalJournal->transaction_type = $transaction_type; $generalJournal->reference_id = $payment->id; $generalJournal->year = $currentYear; $generalJournal->account_code = $cashCode; $generalJournal->workspace_id = $workspace_id; $generalJournal->amount = $request->amount; $generalJournal->dr_cr_indicator = Config::get('common.debit_credit_indicator.credit'); $generalJournal->created_by = Auth::user()->id; $generalJournal->created_at = time(); $generalJournal->save(); }); } catch (\Exception $e) { //dd($e); Session()->flash('error_message', 'Payment Creation Failed!'); return redirect('make_payments'); } Session()->flash('flash_message', 'Payment Done Successfully!'); return redirect('make_payments'); }
/** * @POST("/shops/{shops}/extend", middleware="auth", as="shops.extend") */ public function extend(Shops $shop) { // 500 items if ($shop->capacity == 500) { // Create transaction $payment = new Payment(); $payment->uid = mt_rand(); $payment->user_id = Auth::user()->id; $payment->description = 'Продление магазина на 500 товаров'; $payment->balance = 500; $payment->operation = '-'; $payment->save(); // Check balance if (Auth::user()->balance < 500) { \Session::flash('message', 'Недостаточно средств для продления магазина, пожалуйста пополните баланс.'); return redirect()->route('shops.my'); } else { // Update shop $shop->paid_at = Carbon::now()->addMonth(); $shop->update(); // Update transaction and balance user $payment->status = 1; $payment->save(); $modifyBalanceToUser = User::find(\Auth::user()->id); $modifyBalanceToUser->balance -= 500; $modifyBalanceToUser->update(); \Session::flash('message', "Вы продлили магазин на 500 товаров. Спасибо за покупку ;)"); } return redirect()->route('shops.my'); } // 2000 items if ($shop->capacity == 2000) { // Create transaction $payment = new Payment(); $payment->uid = mt_rand(); $payment->user_id = Auth::user()->id; $payment->description = 'Продление магазина на 2000 товаров'; $payment->balance = 1000; $payment->operation = '-'; $payment->save(); // Check balance if (Auth::user()->balance < 1000) { \Session::flash('message', 'Недостаточно средств для продления магазина, пожалуйста пополните баланс.'); return redirect()->route('shops.my'); } else { // Create shop $shop->paid_at = Carbon::now()->addMonth(); $shop->update(); // Update transaction and balance user $payment->status = 1; $payment->save(); $modifyBalanceToUser = User::find(\Auth::user()->id); $modifyBalanceToUser->balance -= 1000; $modifyBalanceToUser->update(); \Session::flash('message', "Вы продлили магазин на 2000 товаров. Спасибо за покупку ;)"); } return redirect()->route('shops.my'); } }
public function getRaising(Request $request) { //writing transaction $payment = new Payment(); $payment->uid = mt_rand(); $payment->user_id = $request->user()->id; $payment->description = 'Плата за поднятие'; $payment->balance = $request->input('rise_count') * 10; $payment->operation = '-'; $payment->save(); //check if ($request->input('rise_count') >= 30) { if ($request->user()->balance < $request->input('rise_count') * 10) { \Session::flash('message', 'Недостаточно средств, пожалуйста пополните баланс.'); } else { $payment->status = 1; $payment->save(); $modifyBalanceToUser = User::find($request->user()->id); $rises = $request->input('rise_count'); $modifyBalanceToUser->balance -= $rises * 10; $modifyBalanceToUser->balance += 100; $modifyBalanceToUser->ads_rise += $rises; $modifyBalanceToUser->update(); \Session::flash('message', "Вы купили {$rises} поднятий."); } } elseif ($request->input('rise_count') != null && $request->input('rise_count') != 0) { if ($request->user()->balance < $request->input('rise_count') * 10) { \Session::flash('message', 'Недостаточно средств, пожалуйста пополните баланс.'); } else { $payment->status = 1; $payment->save(); $modifyBalanceToUser = User::find($request->user()->id); $rises = $request->input('rise_count'); $modifyBalanceToUser->balance -= $rises * 10; $modifyBalanceToUser->ads_rise += $rises; $modifyBalanceToUser->update(); \Session::flash('message', "Вы купили {$rises} поднятий."); } } return redirect()->back(); }