public function PaymentValidate($id)
 {
     $user = Auth::user();
     $participant = Participant::find($id);
     $club = $participant->event->club;
     $validator = Validator::make(Input::all(), Payment::$rules);
     if ($validator->passes()) {
         //validation done prior ajax
         $param = array('ccnumber' => str_replace('_', '', Input::get('card')), 'ccexp' => sprintf('%02s', Input::get('month')) . Input::get('year'), 'cvv' => Input::get('cvv'), 'address1' => Input::get('address'), 'city' => Input::get('city'), 'state' => Input::get('state'), 'zip' => Input::get('zip'), 'club' => $club->id);
         $payment = new Payment();
         $transaction = $payment->create_customer($param, $user);
         if ($transaction->response == 3 || $transaction->response == 2) {
             $data = array('success' => false, 'error' => $transaction);
             return Redirect::action('ParticipantController@paymentCreate', array($participant->id))->with('error', $transaction->responsetext);
         } else {
             $user->profile->customer_vault = $transaction->customer_vault_id;
             $user->profile->save();
             $data = array('success' => true, 'customer' => $transaction->customer_vault_id, 'card' => substr($param['ccnumber'], -4), 'ccexp' => $param['ccexp'], 'zip' => $param['zip']);
             return Redirect::action('ParticipantController@paymentCreate', array($participant->id));
         }
     }
     return Redirect::back()->withErrors($validator)->withInput();
 }
 /**
 * Validate & Save customer card data. Ajax only
 *
 * @param  int  $id
 * @return Response
 */
 public function validate()
 {
     $user = Auth::user();
     $validator = Validator::make(Input::all(), Payment::$rules);
     if ($validator->passes()) {
         //validation done prior ajax
         $param = array('ccnumber' => Input::get('card'), 'ccexp' => Input::get('month') . Input::get('year'), 'cvv' => Input::get('cvv'), 'address1' => Input::get('address'), 'city' => Input::get('city'), 'state' => Input::get('state'), 'zip' => Input::get('zip'));
         $payment = new Payment();
         $transaction = $payment->create_customer($param, $user);
         if ($transaction->response == 3 || $transaction->response == 2) {
             $data = array('success' => false, 'error' => $transaction);
             return $data;
         } else {
             //update user customer #
             User::where('id', $user->id)->update(array('customer_id' => $transaction->customer_vault_id));
             //retrived data save from API - See API documentation
             $data = array('success' => true, 'customer' => $transaction->customer_vault_id, 'card' => substr($param['ccnumber'], -4), 'ccexp' => $param['ccexp'], 'zip' => $param['zip']);
             return $data;
         }
     }
     return Redirect::back()->withErrors($validator)->withInput();
 }
 public function validation($team, $member)
 {
     $member = Member::find($member);
     $player = Player::find($member->player_id)->with("user")->FirstOrFail();
     $user = $player->user[0];
     $messages = array('card.required' => "Credit Card Number Required", 'month.required' => "Expiration Month Required", 'year.required' => "Expiration Year Required", 'cvv.required' => "Security Code Required", 'address1.required' => "Billing Address Required", 'city.required' => "Billing City Required", 'state.required' => "Billing state Required", 'zip.required' => "Billing zip Required");
     $validator = Validator::make(Input::all(), Plan::$rules_validation, $messages);
     if ($validator->passes()) {
         //validation done prior ajax
         $param = array('ccnumber' => Input::get('card'), 'ccexp' => sprintf('%02s', Input::get('month')) . Input::get('year'), 'cvv' => Input::get('cvv'), 'address1' => Input::get('address1'), 'city' => Input::get('city'), 'state' => Input::get('state'), 'zip' => Input::get('zip'));
         $payment = new Payment();
         $transaction = $payment->create_customer($param, $user->id);
         if ($transaction->response == 3 || $transaction->response == 2) {
             $data = array('success' => false, 'error' => $transaction);
             $object = json_decode(json_encode($data), FALSE);
             return Redirect::back()->withErrors($object->error->responsetext)->withInput();
         } else {
             //update user customer #
             User::where('id', $user->id)->update(array('customer_id' => $transaction->customer_vault_id));
             return Redirect::action('PlanController@create', array($team, $member->id));
         }
     }
     $error = $validator->errors()->all(':message');
     return Redirect::back()->withErrors($error)->withInput();
 }
 public function PaymentValidateTeam($club, $id)
 {
     $user = Auth::user();
     $club = Club::find($club);
     $team = Team::find($id);
     $validator = Validator::make(Input::all(), Payment::$rules);
     if ($validator->passes()) {
         //validation done prior ajax
         $param = array('ccnumber' => str_replace('_', '', Input::get('card')), 'ccexp' => sprintf('%02s', Input::get('month')) . Input::get('year'), 'cvv' => Input::get('cvv'), 'address1' => Input::get('address'), 'city' => Input::get('city'), 'state' => Input::get('state'), 'zip' => Input::get('zip'), 'club' => $club->id);
         $payment = new Payment();
         $transaction = $payment->create_customer($param, $user);
         if ($transaction->response == 3 || $transaction->response == 2) {
             $data = array('success' => false, 'error' => $transaction);
             return Redirect::action('ClubPublicController@PaymentCreateTeam', array($club->id, $team->id))->with('error', $transaction->responsetext);
         } else {
             //update user customer #
             $user->profile->customer_vault = $transaction->customer_vault_id;
             $user->profile->save();
             //User::where('id', $user->id)->update(array('customer_id' => $transaction->customer_vault_id ));
             //retrived data save from API - See API documentation
             $data = array('success' => true, 'customer' => $transaction->customer_vault_id, 'card' => substr($param['ccnumber'], -4), 'ccexp' => $param['ccexp'], 'zip' => $param['zip']);
             return Redirect::action('ClubPublicController@PaymentCreateTeam', array($club->id, $team->id));
         }
     }
     return Redirect::back()->withErrors($validator)->withInput();
 }