mivita/resources/views/web/templates/checkout-error.blade.php
2026-04-14 18:07:45 +02:00

148 lines
8 KiB
PHP

@extends($user_shop ? 'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
@php
$isCancel = ($error_type ?? 'error') === 'cancel';
$errorcode = $errorcode ?? null;
$errorDescription = $error_description ?? null;
// Fehlercode → konkreten Hinweistext ermitteln
$errorReason = null;
if (!$isCancel && $errorcode) {
$code = (int) $errorcode;
if (in_array($code, [33])) {
$errorReason = __('payment.payment_error_reasons.card_expired');
} elseif (in_array($code, [4, 34])) {
$errorReason = __('payment.payment_error_reasons.card_blocked');
} elseif (in_array($code, [12, 14, 105])) {
$errorReason = __('payment.payment_error_reasons.card_invalid');
} elseif (in_array($code, [5, 902, 4219])) {
$errorReason = __('payment.payment_error_reasons.card_declined');
} elseif (in_array($code, [130])) {
$errorReason = __('payment.payment_error_reasons.insufficient_funds');
} elseif (in_array($code, [120])) {
$errorReason = __('payment.payment_error_reasons.cvv_invalid');
} elseif (in_array($code, [900])) {
$errorReason = __('payment.payment_error_reasons.3ds_failed');
} elseif (in_array($code, [970, 135])) {
$errorReason = __('payment.payment_error_reasons.timeout');
} elseif (in_array($code, [4218])) {
$errorReason = __('payment.payment_error_reasons.fraud');
} else {
$errorReason = __('payment.payment_error_reasons.general');
}
} elseif (!$isCancel) {
$errorReason = __('payment.payment_error_reasons.general');
}
@endphp
<section class="page-header page-header-xlg parallax parallax-3"
style="background-image:url('/assets/images/vision-min.jpg')">
<div class="overlay dark-1"></div>
<div class="container"></div>
</section>
<section class="py-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-2 col-md-12"></div>
<div class="col-md-12 col-lg-8">
@if ($isCancel)
{{-- ── ABGEBROCHEN ──────────────────────────────── --}}
<div class="panel panel-default">
<div class="panel-body text-center py-4">
<div style="font-size:3rem; color:#f0ad4e;" class="mb-3">
<i class="fa fa-ban"></i>
</div>
<h3 class="mb-2">{{ $error_title }}</h3>
<p class="text-muted mb-1">{{ $error_message }}</p>
<p class="text-muted small mb-4">{{ __('payment.nothing_was_charged') }}</p>
<div class="alert alert-info text-left py-2 mb-4" style="font-size:0.9rem;">
<i class="fa fa-info-circle mr-1"></i>
{{ __('payment.payment_canceled_hint') }}
</div>
@if (isset($checkout_url))
<a href="{{ $checkout_url }}" class="btn btn-primary btn-lg btn-block mb-2">
<i class="fa fa-refresh mr-1"></i>
{{ __('payment.try_again') }}
</a>
@endif
@if ($user_shop)
<a href="{{ config('app.protocol') . $user_shop->slug . '.' . config('app.domain') . config('app.tld_care') }}"
class="btn btn-default btn-block">
<i class="fa fa-arrow-left mr-1"></i> {{ __('payment.back_to_shop') }}
</a>
@endif
</div>
</div>
@else
{{-- ── FEHLER ───────────────────────────────────── --}}
<div class="panel panel-default">
<div class="panel-body py-4">
<div class="text-center mb-3">
<div style="font-size:3rem; color:#d9534f;">
<i class="fa fa-exclamation-circle"></i>
</div>
<h3 class="mt-2 mb-1">{{ $error_title }}</h3>
<p class="text-muted mb-0">{{ $error_message }}</p>
<small class="text-muted">{{ __('payment.nothing_was_charged') }}</small>
</div>
<hr>
{{-- Konkreter Hinweis basierend auf Fehlercode --}}
<div class="alert alert-warning mb-3" style="font-size:0.9rem;">
<strong><i
class="fa fa-lightbulb-o mr-1"></i>{{ __('payment.payment_error_what_to_do') }}</strong><br>
{{ $errorReason }}
</div>
{{-- Fehlerbeschreibung + Code (für Transparenz) --}}
@if ($errorcode || $errorDescription)
<div class="panel panel-default mb-3" style="font-size:0.82rem;">
<div class="panel-heading py-1 px-3" style="font-size:0.82rem;">
<strong>{{ __('payment.payment_error_code') }}</strong>
</div>
<div class="panel-body py-2 px-3">
@if ($errorcode)
<span class="label label-danger mr-2">{{ $errorcode }}</span>
@endif
@if ($errorDescription)
<span class="text-muted">{{ $errorDescription }}</span>
@endif
</div>
</div>
@endif
{{-- Aktionsbuttons --}}
@if (isset($checkout_url))
<a href="{{ $checkout_url }}" class="btn btn-primary btn-block btn-lg mb-2">
<i class="fa fa-refresh mr-1"></i>
{{ __('payment.payment_error_retry') }}
</a>
@endif
@if ($user_shop)
<a href="{{ config('app.protocol') . $user_shop->slug . '.' . config('app.domain') . config('app.tld_care') }}"
class="btn btn-default btn-block mb-3">
<i class="fa fa-arrow-left mr-1"></i> {{ __('payment.back_to_shop') }}
</a>
@endif
<p class="text-muted text-center small mb-0">
<i class="fa fa-envelope-o mr-1"></i>
{{ __('payment.contact_support_if_needed') }}
</p>
</div>
</div>
@endif
</div>
</div>
</div>
</section>
@endsection