- Karten-Update ohne Abbuchung via PAYONE creditcardcheck/pseudocardpan (AboPaymentMethodService, CardUpdateResult/CreditCardCheckData-DTOs) - Eingabe nur durch Abo-Inhaber: CRM- und Portal-Formular + zeitlich begrenzter Berater→Kunde-Link (AboCardUpdateLink + Mail) - Änderungshistorie in user_abo_card_changes, Anzeige im Admin-Abo-Detail - Admin: Abo löschen (destroy) inkl. Test - Portal-Fix: myOrderCreate wirft 404 statt TypeError bei ungültiger ID - VIP-Sichtbarkeitstests für Einmalartikel-Fenster ergänzt - Enthält bereits die Freeze-Guards für den Stripe-Notbetrieb (Folge-Commit) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
20 lines
1 KiB
PHP
20 lines
1 KiB
PHP
@extends('portal.layouts.public')
|
|
|
|
@section('content')
|
|
<div class="text-center" style="max-width: 640px; margin: 0 auto;">
|
|
@if ($success)
|
|
<i class="ion ion-md-checkmark-circle text-success" style="font-size: 3rem;"></i>
|
|
<h4 class="font-weight-bold mt-3">{{ __('abo.card_update_done_success_title') }}</h4>
|
|
<p class="text-muted">{{ __('abo.card_update_done_success_copy') }}</p>
|
|
@else
|
|
<i class="ion ion-md-close-circle text-danger" style="font-size: 3rem;"></i>
|
|
<h4 class="font-weight-bold mt-3">{{ __('abo.card_update_done_failed_title') }}</h4>
|
|
<p class="text-muted">{{ __('abo.card_update_done_failed_copy') }}</p>
|
|
@endif
|
|
|
|
<p class="text-muted mt-3">{{ __('abo.card_update_portal_hint') }}</p>
|
|
<a href="{{ \App\Services\Util::getMyMivitaPortalUrl() }}" class="btn btn-outline-secondary btn-sm">
|
|
<i class="ion ion-md-home mr-1"></i>{{ __('abo.card_update_to_portal') }}
|
|
</a>
|
|
</div>
|
|
@endsection
|