widerrufsbelehrung hinzugefügt und in den checkout mit eingebunden. refund ins backend eingebaut.

This commit is contained in:
Codex Agent
2025-12-07 11:57:05 +01:00
parent e092f72475
commit 1d3d49e05a
44 changed files with 1143 additions and 71 deletions

View File

@@ -15,7 +15,9 @@ use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Str;
use App\Notifications\Ops\PurchaseCreated;
class CheckoutAssignmentService
{
@@ -48,6 +50,14 @@ class CheckoutAssignmentService
}
$metadata = $session->provider_metadata ?? [];
$consents = [
'accepted_terms_at' => optional($session->accepted_terms_at)->toIso8601String(),
'accepted_privacy_at' => optional($session->accepted_privacy_at)->toIso8601String(),
'accepted_withdrawal_notice_at' => optional($session->accepted_withdrawal_notice_at)->toIso8601String(),
'digital_content_waiver_at' => optional($session->digital_content_waiver_at)->toIso8601String(),
'legal_version' => $session->legal_version,
];
$consents = array_filter($consents);
$providerReference = $options['provider_reference']
?? $metadata['paddle_transaction_id'] ?? null
@@ -72,7 +82,11 @@ class CheckoutAssignmentService
'price' => $session->amount_total,
'type' => $package->type === 'reseller' ? 'reseller_subscription' : 'endcustomer_event',
'purchased_at' => now(),
'metadata' => $options['payload'] ?? null,
'metadata' => array_filter([
'payload' => $options['payload'] ?? null,
'checkout_session_id' => $session->id,
'consents' => $consents ?: null,
]),
]
);
@@ -104,6 +118,11 @@ class CheckoutAssignmentService
Mail::to($user)
->locale($mailLocale)
->queue(new PurchaseConfirmation($purchase));
$opsEmail = config('mail.ops_address');
if ($opsEmail) {
Notification::route('mail', $opsEmail)->notify(new PurchaseCreated($purchase));
}
}
AbandonedCheckout::query()