示例#1
0
 /**
  * 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');
 }
示例#2
0
 /**
  * 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();
 }