%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/Booking/Payment/ |
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/Booking/Payment/CreatePayment.php |
<?php namespace App\Http\Controllers\Booking\Payment; use App\Models\User; use App\Helpers\MoneyHelper; use App\Services\Stripe\SellerService; use App\Services\Stripe\PaymentMethodService; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class CreatePayment extends Controller { /** * Get the payment intent for a new card * * @param integer $seller_id * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function __invoke($seller_id, Request $request) { $seller = User::findOrFail($seller_id); $user = auth()->user(); $user->addPaymentMethod($request->get('payment_method')); $user->updateDefaultPaymentMethod($request->get('payment_method')); $grandTotal = MoneyHelper::reverseStripeFormat($request->get('grand_total')); $payment = $user->charge($request->get('grand_total'), $request->get('payment_method'), [ 'off_session' => true, 'confirm' => true ]); $charges = $payment->asStripePaymentIntent(); $transfer = null; foreach($charges['charges']['data'] as $charge) { $stripeFees = MoneyHelper::getStripeFees($grandTotal, $charge['payment_method_details']['card']['country']); $transfer_amount = MoneyHelper::stripeFormat($grandTotal - $stripeFees); $transfer = SellerService::createTransfer($seller, $transfer_amount, $charge['id']); } PaymentMethodService::removeDuplicatedPaymentMethods($user->stripe_id); return response()->json([ 'charges' => $charges['charges']['data'], 'transfer' => $transfer ]); } }