feat: historique paiement

This commit is contained in:
2026-05-27 11:37:29 +02:00
parent 51b50aa1d0
commit a01387bb09
18 changed files with 920 additions and 13 deletions
+15 -1
View File
@@ -6,6 +6,7 @@ use App\Enums\CreditProductType;
use App\Http\Resources\CreditProductResource;
use App\Models\CreditProduct;
use App\Services\MobileDeepLink;
use App\Services\PaymentTransactionRecorder;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
@@ -25,7 +26,11 @@ class BillingController extends Controller
return CreditProductResource::collection($products);
}
public function checkout(Request $request, CreditProduct $creditProduct): JsonResponse
public function checkout(
Request $request,
CreditProduct $creditProduct,
PaymentTransactionRecorder $transactions,
): JsonResponse
{
abort_unless($creditProduct->is_active, 404);
abort_unless(filled($creditProduct->stripe_price_id), 404);
@@ -58,6 +63,15 @@ class BillingController extends Controller
$session = $checkout->asStripeCheckoutSession();
$transactions->recordCheckoutSession(
user: $user,
product: $creditProduct,
stripeCheckoutSessionId: $session->id,
stripeCustomerId: $session->customer,
amount: $session->amount_total,
currency: $session->currency,
);
return response()->json([
'id' => $session->id,
'url' => $session->url,