Ejemplo n.º 1
0
 public function createPlan(StripePlanRequest $request)
 {
     /*
      * Stripe Api Key Set
      * This ApiKey get from environment variable
      * Using Stripe lib for creating plan
      * */
     /*
      * Processing input data for stripe
      * */
     $amount = number_format($request->plan_amount, 2);
     $amount = (int) ($amount * 100);
     $interval = strtolower($request->plan_interval);
     $interval_count = 1;
     if ($interval == 'custom') {
         $interval_count = (int) $request->interval_count;
         $interval = $request->coustom_interval;
     } else {
         if ($interval == '3-month' || $interval == '6-month') {
             $array = explode('-', $interval);
             $interval_count = (int) $array[0];
             $interval = $array[1];
         }
     }
     Stripe::setApiKey(getenv('STRIPE_SECRET'));
     $plan = Plan::create(array("id" => $request->plan_id, "name" => $request->plan_name, "currency" => $request->plan_currency, "amount" => $amount, "interval" => $interval, "interval_count" => $interval_count, "trial_period_days" => (int) $request->plan_trial, "statement_descriptor" => $request->plan_des));
     /*
      * Stripe Plan insert in Local Database
      * Using Local Database for faster loading
      * */
     $stripePlan = StripePlan::create(["plan_id" => $request->plan_id, "name" => $request->plan_name, "amount" => $request->plan_amount, "currency" => $request->plan_currency, "interval" => $interval, "interval_count" => $interval_count, "auto_renewal" => (int) $request->auto_renewal ? $request->auto_renewal : 0, "trial_period_days" => (int) $request->plan_trial, "statement_descriptor" => $request->plan_des, "coupon_id" => $request->discount == 1 ? $request->stripe_coupon : null, "created" => date('Y-m-d H:i:s')]);
     $stripePlan->planFeature()->attach($request->feature_id);
     if ($stripePlan) {
         flash('Your Plan (' . $stripePlan->name . ') is successfully created.');
     } else {
         flash('Your Plan (' . $stripePlan->name . ') is failed to create. Please contact your administrator for assistance.');
     }
     return redirect()->back();
 }