public function initializeBilling(InitializeBillingRequest $request) { //TODO FAIRE UN SERVICE NON et des repository ? $category = $request->get('category'); $uuid = base64_encode(time()); $plan = config("plans.pricing.{$category}"); $users_sup = $request->get('users'); $plan['limits']['base'] = +$users_sup; $subscription = new Subscription(); $subscription->price_base = $plan['price']; $subscription->category = $category; $subscription->price_current = $plan['price'] + $users_sup; //TODO CALCUL SAVANT $subscription->values = json_encode($plan); $subscription->is_active = false; $subscription->last_billing_uuid = $uuid; $billing = new Billing(); $billing->uuid = $uuid; $billing->status = "NOT-BILLED"; $billing->price = $subscription->price_current; $billing->is_billed = false; $subscription->organization()->associate($this->organization); $subscription->save(); $billing->subscription()->associate($subscription); $billing->organization()->associate($this->organization); $billing->save(); return redirect(); //TODO ENV REDIRECT URL }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function subscribe($id) { if (Auth::guest()) { return Redirect::to('/auth/login'); } else { $subs = Subscription::where("subscriber_id", $id)->where("subscribed_id", Auth::user()->id)->get(); if (!$subs) { return back(); } else { $subscription = new Subscription(); $subscription->subscriber_id = $id; $subscription->subscribed_id = Auth::user()->id; $subscription->save(); return back(); } } }
public function process(ProcessRequest $request) { // Initialize paymill request // Create credit card payment $payment = new Payment(); $payment->setToken($request->get('token')); $paymentResponse = $paymillRequest->create($payment); // Create subscription $subscription = new Subscription(); $subscription->setAmount(30)->setPayment($paymentResponse->getId())->setCurrency('EUR')->setInterval('1 week,monday')->setName('Nova sub')->setPeriodOfValidity('2 YEAR')->setStartAt(time()); $subscriptionResponse = $paymillRequest->create($subscription); // Save in database $paymentModel = new PaymentModel(); $paymentModel->user_id = Auth::user()->id; $paymentModel->paymill_payment_id = $paymentResponse->getId(); $paymentModel->save(); // Save subscription $subscriptionModel = new SubscriptionModel(); $subscriptionModel->user_id = Auth::user()->id; $subscriptionModel->paymill_subscription_id = $subscriptionResponse->getId(); $subscriptionModel->save(); }
/** * @param $recipient */ private function saveSubscription($recipient) { $result = $this->subscription->subscribe($recipient); $subscription = new SubscriptionModel(); $subscription->number = $recipient; $subscription->status = $result->status; $subscription->description = $result->description; $subscription->save(); Log::debug($recipient . ' is subscribed'); }
/** * Subscribe user with POST request. * * @param Request $request * @return mixed */ public function postSubscription(Request $request) { $validator = Validator::make($request->all(), array('sub_email' => 'required|email|unique:subscriptions'), array('sub_email.required' => 'Please enter an e-mail address!', 'sub_email.email' => 'Please enter an correct e-mail address!', 'sub_email.unique' => 'Your already subscribed, please enter a different e-mail address!')); if ($validator->fails()) { return Redirect::route('home')->with('msg-error', 'Bad Email!')->withErrors($validator); } else { $s_email = new Subscription(); $s_email->sub_email = $request['sub_email']; $s_email->user_ip = $request->getClientIp(); if ($s_email->save()) { return Redirect::route('home')->with('msg-success', 'Your successfully subscribed with: <strong>' . $request['sub_email'] . '</strong>'); } } return Redirect::route('home')->with('global', 'There was an error with sign in. Please try again later!'); }