/** * Store a newly created resource in storage. * * @return Response */ public function store() { //log to file $file = fopen(storage_path() . "/logs/trans_logs.txt", "a"); foreach (Input::all() as $k => $val) { fwrite($file, $k . " --- " . $val . "\n"); } fwrite($file, "\n\n *********************************** \n\n\n"); fclose($file); //end log to file //process jambopay response $JP_PASSWORD = Input::get('JP_PASSWORD'); if (isset($JP_PASSWORD) && strlen($JP_PASSWORD) > 0) { //success response from jambopay.... $sharedkey = '6127482F-35BC-42FF-A466-276C577E7DF3'; $JP_MERCHANT_ORDERID = Input::get('JP_MERCHANT_ORDERID'); $JP_AMOUNT = Input::get('JP_AMOUNT'); $JP_CURRENCY = Input::get('JP_CURRENCY'); $JP_TIMESTAMP = Input::get('JP_TIMESTAMP'); $user_id = e(Input::get('uid')); $trx_id = e(Input::get('JP_TRANID')); $channel = e(Input::get('JP_CHANNEL')); $str = $JP_MERCHANT_ORDERID . $JP_AMOUNT . $JP_CURRENCY . $sharedkey . $JP_TIMESTAMP; //**************** VERIFY ************************* if (md5(utf8_encode($str)) === $JP_PASSWORD && $user_id == Session::get('account_id')) { //Log Transaction in transactionlogs //error_log("success"); $trans_id = e(Input::get('tid')); $transaction = Mraditransactionlog::find($trans_id); $transaction->trx_id = $trx_id; $transaction->currency = e(Input::get('JP_CURRENCY')); $transaction->timestamp = e(Input::get('JP_TIMESTAMP')); $transaction->password = e(Input::get('JP_PASSWORD')); $transaction->channel = $channel; $transaction->mradistatustransaction_id = e(Input::get('sid')); $transaction->save(); if (e(Input::get('sid')) == '1') { //insert transaction into investor wallet and update balance $investor_balance = Helpers::investorBalance($user_id); $transaction = new Mradiwallettransaction(); $transaction->user_id = e(Input::get('uid')); $transaction->order_id = e(Input::get('JP_MERCHANT_ORDERID')); $transaction->mraditransactionlog_id = $trans_id; $transaction->campaign_id = e(Input::get('JP_ITEM_NAME')); $transaction->mraditransactiontype_id = 1; $transaction->credit = e(Input::get('JP_AMOUNT')); $transaction->balance = $JP_AMOUNT + $investor_balance; $transaction->save(); Session::flash('_response', '<div style="width: 98%"><div class="alert alert-success alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Successfully creditted your wallet. </b> </div></div>'); } elseif (e(Input::get('sid')) == 2) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Transaction Failed!! Please check your balance and try again later. </b> </div></div>'); } return Redirect::to('wallet'); } else { //INVALID TRANSACTION $trans_id = e(Input::get('tid')); $transaction = Mraditransactionlog::find($trans_id); $transaction->trx_id = $trx_id; $transaction->currency = e(Input::get('JP_CURRENCY')); $transaction->timestamp = e(Input::get('JP_TIMESTAMP')); $transaction->password = e(Input::get('JP_PASSWORD')); $transaction->channel = $channel; $transaction->mradistatustransaction_id = 4; $transaction->save(); Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-ban"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b>Alert!</b> Invalid Transaction! Please check with your admin or try again later. </div></div>'); return Redirect::to('wallet'); } } elseif (empty($JP_PASSWORD) && ($amount = Input::get('amount'))) { $rules = array('amount' => 'required|integer'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('wallet/create')->withErrors($validator)->withInput(Input::except('password')); } else { // store $order_id = mt_rand(101010, 999999); $transaction = new Mraditransactionlog(); $transaction->amount = Input::get('amount'); $transaction->order_id = $order_id; $transaction->user_id = Session::get('account_id'); $transaction->item_name = "mradi wallet"; $transaction->mraditransactiontype_id = 1; $transaction->save(); //get transaction details to process $transactions = Mraditransactionlog::find($transaction->id); return View::make('admin.pages.jambo_form')->withObjects($transactions); } } Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-ban"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b>Alert!</b> System Error! Please confirm amount is greater than 0 or check with your admin and try again later. </div></div>'); return Redirect::to('wallet'); }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { //save bid //log to file $file = fopen(storage_path() . "/logs/trans_bids.txt", "a"); foreach (Input::all() as $k => $val) { fwrite($file, $k . " --- " . $val . "\n"); } fwrite($file, "\n\n *********************************** \n\n\n"); fclose($file); //end log to file $rules = array('bid_amt' => 'required|numeric|min:1'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(Input::except('password')); } else { // get params n process bid $user_id = Session::get('account_id'); $min_amt = e(Input::get('min_investment')); $max_amt = e(Input::get('max_investment')); $total_bidded = e(Input::get('total_bidded')); $bid_balance = e(Input::get('amt_remaining')); $bid_amt = e(Input::get('bid_amt')); $investor_balance = e(Input::get('investor_balance')); $campaign_id = Helpers::getCampaignID(e(Input::get('campaign_id'))); $campaign_name = strtoupper(Helpers::getCampaignID(e(Input::get('campaign_id')), true)); $order_id = mt_rand(1010101, 9010901); if ($investor_balance < $bid_amt) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! You do no have sufficient balance in your wallet. </b> </div></div>'); } elseif ($bid_amt < $min_amt || $bid_amt > $max_amt) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! You must bid within the limits provided ' . $min_amt . ' <= Your Bid <= ' . $max_amt . ' </b> </div></div>'); } elseif ($bid_amt > $bid_balance) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! Your bid is beyond maximum limit, you can only bid a max of $bid_balance. </b> </div></div>'); } else { //process bid $details = Helpers::getCampaignID(e(Input::get('campaign_id')), '', true); $entrepreneur_id = $details->user_id; $bidTrans = new Mradicampaignbid(); $bidTrans->investor_id = Session::get('account_id'); $bidTrans->entrepreneur_id = $entrepreneur_id; $bidTrans->campaign_id = e(Input::get('campaign_id')); $bidTrans->order_id = $order_id; $bidTrans->mraditransactiontype_id = 2; $bidTrans->amount = $bid_amt; $bidTrans->total_bidded = $total_bidded + $bid_amt; $bidTrans->save(); //debit investor $investor_balance = Helpers::investorBalance($user_id); $mybid = new Mradiwallettransaction(); $mybid->user_id = Session::get('account_id'); $mybid->order_id = $order_id; $mybid->mradicampaignbid_id = $bidTrans->id; $mybid->campaign_id = $campaign_id; $mybid->mraditransactiontype_id = 2; $mybid->debit = $bid_amt; $mybid->balance = $investor_balance - $bid_amt; $mybid->save(); //credit entrepreneur $entrepreneur_balance = Helpers::investorBalance($entrepreneur_id, false, $campaign_id); $mybid = new Mradiwallettransaction(); $mybid->user_id = $entrepreneur_id; $mybid->order_id = $order_id; $mybid->mradicampaignbid_id = $bidTrans->id; $mybid->campaign_id = $campaign_id; $mybid->mraditransactiontype_id = 2; $mybid->credit = $bid_amt; $mybid->balance = $entrepreneur_balance + $bid_amt; $mybid->save(); Session::flash('_response', '<div style="width: 98%"><div class="alert alert-success alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Transaction Successful!! Your have successfully bidded <i>' . $campaign_name . '</i> with <i>KShs. ' . number_format($bid_amt, 2) . '</i> <br /> New A/c Balance <i>KShs. ' . number_format($investor_balance - $bid_amt, 2) . '</i> </b> </div></div>'); } return Redirect::to('bid/' . Input::get('campaign_id')); } return Redirect::back(); }