148 lines
8 KiB
PHP
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
|