299 lines
20 KiB
PHP
299 lines
20 KiB
PHP
@extends('layouts.site')
|
||
|
||
@section('content')
|
||
|
||
<section class="wrapper bg-white py-16 xl:py-20 relative">
|
||
<div class="container">
|
||
<!-- Header -->
|
||
<div class="row align-items-center mb-12">
|
||
<div class="col-lg-8 mx-auto text-center">
|
||
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-blue-50 text-blue-600 text-sm font-bold mb-6">
|
||
<i class="uil uil-shield-check text-xl"></i>
|
||
{!! t('256-Bit SSL Güvenli Ödeme') !!}
|
||
</div>
|
||
<h1 class="display-3 font-bold text-slate-800 mb-4">{!! $page->title !!}</h1>
|
||
<p class="text-lg text-slate-500 max-w-2xl mx-auto">{!! $page->excerpt ?? t('Kredi kartınızla hızlı, kolay ve güvenli ödeme yapın.') !!}</p>
|
||
</div>
|
||
</div>
|
||
|
||
@if(session('success'))
|
||
<div class="row mb-10">
|
||
<div class="col-lg-6 mx-auto">
|
||
<div class="alert alert-success bg-green-50 text-green-700 border-green-100 rounded-2xl p-5 flex items-start gap-4 shadow-sm">
|
||
<i class="uil uil-check-circle text-2xl"></i>
|
||
<div>
|
||
<h4 class="font-bold text-lg mb-1">{!! t('Ödeme Başarılı!') !!}</h4>
|
||
<p>{!! session('success') !!}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endif
|
||
|
||
@if(session('error'))
|
||
<div class="row mb-10">
|
||
<div class="col-lg-6 mx-auto">
|
||
<div class="alert alert-danger bg-red-50 text-red-700 border-red-100 rounded-2xl p-5 flex items-start gap-4 shadow-sm">
|
||
<i class="uil uil-exclamation-triangle text-2xl"></i>
|
||
<div>
|
||
<h4 class="font-bold text-lg mb-1">{!! t('Ödeme Başarısız!') !!}</h4>
|
||
<p>{!! session('error') !!}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endif
|
||
|
||
@if($errors->any())
|
||
<div class="row mb-10">
|
||
<div class="col-lg-6 mx-auto">
|
||
<div class="alert alert-danger p-5 rounded-2xl border border-red-100 bg-red-50 shadow-sm">
|
||
<div class="flex items-center gap-3 mb-3 text-red-700">
|
||
<i class="uil uil-exclamation-triangle text-2xl"></i>
|
||
<h4 class="font-bold text-lg mb-0">{!! t('Lütfen Bilgileri Kontrol Ediniz') !!}</h4>
|
||
</div>
|
||
<ul class="list-disc pl-11 mb-0 font-medium text-red-600 space-y-1">
|
||
@foreach ($errors->all() as $error)
|
||
<li>{{ $error }}</li>
|
||
@endforeach
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endif
|
||
|
||
<div class="row justify-content-center">
|
||
<div class="col-lg-12 col-xl-10">
|
||
@if(isset($paytr_token))
|
||
<div class="card shadow-xl border-0 rounded-3xl overflow-hidden relative" style="min-height: 500px;">
|
||
<!-- Header Line -->
|
||
<div class="absolute top-0 left-0 w-full h-1.5 bg-gradient-to-r from-blue-500 to-blue-600"></div>
|
||
<div class="card-body p-4 bg-white">
|
||
<script src="https://www.paytr.com/js/iframeResizer.min.js"></script>
|
||
<iframe src="https://www.paytr.com/odeme/guvenli/{!! $paytr_token !!}" id="paytriframe" frameborder="0" scrolling="no" style="width: 100%;"></iframe>
|
||
<script>iFrameResize({},'#paytriframe');</script>
|
||
</div>
|
||
</div>
|
||
@else
|
||
|
||
<div class="max-w-xl mx-auto">
|
||
<!-- Tabs -->
|
||
<div class="flex justify-center mb-8">
|
||
<div class="bg-gray-100 p-1.5 rounded-full inline-flex">
|
||
<button type="button" class="px-8 py-3 rounded-full text-blue-700 bg-white shadow-sm font-bold text-sm transition-all">
|
||
{!! t('KART İLE ÖDEME') !!}
|
||
</button>
|
||
<a href="{{ url('banka-bilgilerimiz') }}" class="px-8 py-3 rounded-full text-gray-500 font-medium hover:text-gray-700 text-sm transition-colors flex items-center justify-center">
|
||
{!! t('DİĞER YÖNTEMLER') !!}
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-white rounded-[2rem] shadow-2xl shadow-blue-900/5 border border-gray-100 overflow-hidden relative">
|
||
<!-- Top Line -->
|
||
<div class="absolute top-0 left-0 w-full h-1.5 bg-blue-600"></div>
|
||
|
||
<div class="p-8 md:p-10">
|
||
<form action="{{ route('payment.process') }}" method="POST">
|
||
@csrf
|
||
<input type="hidden" name="payment_type" value="online">
|
||
|
||
<div class="space-y-6">
|
||
<!-- Name -->
|
||
<div class="relative group">
|
||
<div class="absolute inset-y-0 left-0 pl-5 flex items-center pointer-events-none">
|
||
<i class="uil uil-user text-gray-400 group-focus-within:text-blue-600 transition-colors text-xl"></i>
|
||
</div>
|
||
<input type="text" name="name" class="block w-full pl-14 pr-5 py-4 bg-white border border-gray-200 rounded-xl text-gray-800 placeholder-gray-400 focus:outline-none focus:border-blue-500 focus:ring-4 focus:ring-blue-500/10 transition-all font-medium shadow-sm" placeholder="{!! t('Adınız') !!}" value="{{ old('name') }}" required>
|
||
</div>
|
||
@error('name') <div class="text-red-500 text-xs ml-2 mt-1 font-medium">{{ $message }}</div> @enderror
|
||
|
||
<!-- Surname -->
|
||
<div class="relative group">
|
||
<div class="absolute inset-y-0 left-0 pl-5 flex items-center pointer-events-none">
|
||
<i class="uil uil-user text-gray-400 group-focus-within:text-blue-600 transition-colors text-xl"></i>
|
||
</div>
|
||
<input type="text" name="surname" value="{{ old('surname') }}" class="block w-full pl-14 pr-5 py-4 bg-white border border-gray-200 rounded-xl text-gray-800 placeholder-gray-400 focus:outline-none focus:border-blue-500 focus:ring-4 focus:ring-blue-500/10 transition-all font-medium shadow-sm" placeholder="{!! t('Soyadınız') !!}" required>
|
||
</div>
|
||
@error('surname') <div class="text-red-500 text-xs ml-2 mt-1 font-medium">{{ $message }}</div> @enderror
|
||
|
||
<!-- Email -->
|
||
<div class="relative group">
|
||
<div class="absolute inset-y-0 left-0 pl-5 flex items-center pointer-events-none">
|
||
<i class="uil uil-envelope text-gray-400 group-focus-within:text-blue-600 transition-colors text-xl"></i>
|
||
</div>
|
||
<input type="email" name="email" class="block w-full pl-14 pr-5 py-4 bg-white border border-gray-200 rounded-xl text-gray-800 placeholder-gray-400 focus:outline-none focus:border-blue-500 focus:ring-4 focus:ring-blue-500/10 transition-all font-medium shadow-sm" placeholder="{!! t('E-Posta Adresi') !!}" value="{{ old('email') }}" required>
|
||
</div>
|
||
@error('email') <div class="text-red-500 text-xs ml-2 mt-1 font-medium">{{ $message }}</div> @enderror
|
||
|
||
<!-- Phone -->
|
||
<div class="relative group">
|
||
<div class="absolute inset-y-0 left-0 pl-5 flex items-center pointer-events-none">
|
||
<i class="uil uil-phone text-gray-400 group-focus-within:text-blue-600 transition-colors text-xl"></i>
|
||
</div>
|
||
<input type="tel" name="phone" class="block w-full pl-14 pr-5 py-4 bg-white border border-gray-200 rounded-xl text-gray-800 placeholder-gray-400 focus:outline-none focus:border-blue-500 focus:ring-4 focus:ring-blue-500/10 transition-all font-medium shadow-sm" placeholder="{!! t('Telefon Numarası') !!}" value="{{ old('phone') }}" required>
|
||
</div>
|
||
@error('phone') <div class="text-red-500 text-xs ml-2 mt-1 font-medium">{{ $message }}</div> @enderror
|
||
|
||
<!-- Note -->
|
||
<div class="relative group">
|
||
<div class="absolute top-4 left-0 pl-5 flex pointer-events-none">
|
||
<i class="uil uil-comment-alt-notes text-gray-400 group-focus-within:text-blue-600 transition-colors text-xl"></i>
|
||
</div>
|
||
<textarea name="address" rows="3" class="block w-full pl-14 pr-5 py-4 bg-white border border-gray-200 rounded-xl text-gray-800 placeholder-gray-400 focus:outline-none focus:border-blue-500 focus:ring-4 focus:ring-blue-500/10 transition-all font-medium shadow-sm resize-none" placeholder="{!! t('Sipariş Notunuz (Opsiyonel)') !!}">{{ old('address') }}</textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Agreement -->
|
||
<div class="mt-6 flex items-start gap-3">
|
||
<div class="flex items-center pt-0.5">
|
||
<input id="agreement" name="agreement" type="checkbox" value="1"
|
||
class="cursor-pointer"
|
||
style="appearance: auto !important; -webkit-appearance: auto !important; width: 20px; height: 20px; accent-color: #1e3a8a;"
|
||
{{ old('agreement') ? 'checked' : '' }} required>
|
||
</div>
|
||
<div class="ml-1 text-sm">
|
||
<label for="agreement" class="font-medium text-gray-700 select-none cursor-pointer">
|
||
<span class="text-blue-900 font-bold hover:underline" onclick="event.preventDefault(); document.getElementById('agreementModal').classList.remove('hidden');">
|
||
Mesafeli Satış Sözleşmesi
|
||
</span>'ni okudum, onaylıyorum.
|
||
</label>
|
||
@error('agreement') <p class="text-red-500 text-xs mt-1">{{ $message }}</p> @enderror
|
||
</div>
|
||
</div>
|
||
|
||
<div class="my-8 border-t border-gray-100"></div>
|
||
|
||
<!-- Total Amount Row -->
|
||
<div class="flex items-end justify-between mb-8 bg-blue-50/50 p-6 rounded-2xl border border-blue-50">
|
||
<div class="text-blue-900 font-bold text-lg mb-1">{!! t('Ödenecek Tutar') !!}</div>
|
||
<div class="text-right">
|
||
<div class="flex items-center justify-end gap-1">
|
||
<input type="number" step="0.01" min="1" name="price" class="bg-transparent border-none text-right font-black text-4xl text-blue-600 p-0 focus:ring-0 w-48 placeholder-blue-300 transition-all outline-none" placeholder="0.00" value="{{ old('price') }}" required>
|
||
<span class="font-bold text-blue-400 text-2xl mb-1">TL</span>
|
||
</div>
|
||
@error('price') <div class="text-red-500 text-xs mt-1 font-medium">{{ $message }}</div> @enderror
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Submit Button -->
|
||
<!-- Custom Style for Payment Button -->
|
||
<style>
|
||
#payment-submit-btn {
|
||
background-color: #e31e24;
|
||
color: white;
|
||
border-radius: 9999px;
|
||
padding-top: 0.5rem;
|
||
padding-bottom: 0.5rem;
|
||
width: 100%;
|
||
font-weight: bold;
|
||
font-size: 1rem;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 0.5rem;
|
||
box-shadow: 0 10px 15px -3px rgba(254, 202, 202, 0.5);
|
||
transition: all 0.3s ease;
|
||
border: none;
|
||
cursor: pointer;
|
||
}
|
||
#payment-submit-btn:hover {
|
||
background-color: #c4161b;
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 20px 25px -5px rgba(220, 38, 38, 0.3);
|
||
}
|
||
</style>
|
||
|
||
<!-- Submit Button -->
|
||
<button type="submit" id="payment-submit-btn">
|
||
<span>{!! t('Ödemeyi Tamamla') !!}</span>
|
||
<i class="uil uil-arrow-right text-2xl"></i>
|
||
</button>
|
||
|
||
<div class="mt-6 text-center">
|
||
<div class="flex justify-center gap-2 opacity-30 grayscale hover:grayscale-0 transition-all duration-300">
|
||
<i class="uil uil-master-card text-2xl"></i>
|
||
<i class="uil uil-visa text-2xl"></i>
|
||
<i class="uil uil-card-atm text-2xl"></i>
|
||
</div>
|
||
</div>
|
||
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
@endif
|
||
|
||
@if($page->content)
|
||
<div class="mt-20 text-center">
|
||
<div class="prose max-w-3xl mx-auto text-slate-500">
|
||
{!! $page->content !!}
|
||
</div>
|
||
</div>
|
||
@endif
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Agreement Modal (Top-Spaced) -->
|
||
<div id="agreementModal" class="fixed inset-0 hidden" style="z-index: 99999;" aria-labelledby="modal-title" role="dialog" aria-modal="true">
|
||
<!-- Backdrop -->
|
||
<div class="absolute inset-0 bg-black/75 transition-opacity backdrop-blur-sm" aria-hidden="true" onclick="document.getElementById('agreementModal').classList.add('hidden')"></div>
|
||
|
||
<!-- Modal Dialog Layout -->
|
||
<div class="absolute inset-0 overflow-y-auto">
|
||
<!-- Changed from 'items-center' to 'items-start' and added 'pt-20' for top spacing -->
|
||
<div class="flex min-h-full items-start justify-center p-4 text-center pt-24 sm:pt-32">
|
||
<!-- Modal Panel -->
|
||
<div class="relative w-full max-w-xl transform overflow-hidden rounded-2xl bg-white text-left shadow-2xl transition-all mb-10" style="background-color: #ffffff;">
|
||
|
||
<!-- Header -->
|
||
<div class="flex items-center justify-between border-b border-gray-100 bg-gray-50 px-6 py-4">
|
||
<h3 class="text-lg font-bold leading-6 text-gray-900" id="modal-title">
|
||
{!! t('Mesafeli Satış Sözleşmesi') !!}
|
||
</h3>
|
||
<button type="button" onclick="document.getElementById('agreementModal').classList.add('hidden')" class="rounded-full p-1 text-gray-400 hover:bg-gray-200 hover:text-gray-500 focus:outline-none transition-colors">
|
||
<i class="uil uil-times text-2xl"></i>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- Body -->
|
||
<div class="px-6 py-6">
|
||
<div class="text-sm text-gray-600 max-h-[60vh] overflow-y-auto space-y-4 pr-2 custom-scrollbar">
|
||
<p class="font-bold text-gray-900">MADDE 1 – TARAFLAR</p>
|
||
<p>İşbu Sözleşme aşağıdaki taraflar arasında aşağıda belirtilen hüküm ve şartlar çerçevesinde imzalanmıştır.</p>
|
||
|
||
<p class="font-bold text-gray-900">MADDE 2 – KONU</p>
|
||
<p>İşbu sözleşmenin konusu, ALICI'nın SATICI'ya ait internet sitesinden elektronik ortamda siparişini yaptığı aşağıda nitelikleri ve satış fiyatı belirtilen ürünün satışı ve teslimi ile ilgili olarak 6502 sayılı Tüketicinin Korunması Hakkında Kanun ve Mesafeli Sözleşmelere Dair Yönetmelik hükümleri gereğince tarafların hak ve yükümlülüklerinin saptanmasıdır.</p>
|
||
|
||
<p class="font-bold text-gray-900">MADDE 3 – CAYMA HAKKI</p>
|
||
<p>ALICI; mal satışına ilişkin mesafeli sözleşmelerde, ürünün kendisine veya gösterdiği adresteki kişi/kuruluşa teslim tarihinden itibaren 14 (on dört) gün içerisinde hiçbir hukuki ve cezai sorumluluk üstlenmeksizin ve hiçbir gerekçe göstermeksizin malı reddederek sözleşmeden cayma hakkını kullanabilir.</p>
|
||
<p>...</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Footer -->
|
||
<div class="flex flex-col-reverse gap-3 border-t border-gray-100 bg-gray-50 px-6 py-4 sm:flex-row sm:justify-end">
|
||
<button type="button" onclick="document.getElementById('agreementModal').classList.add('hidden')"
|
||
class="inline-flex w-full justify-center items-center px-6 py-3 text-sm font-bold shadow-md hover:shadow-xl hover:-translate-y-1 focus:outline-none sm:w-auto"
|
||
style="background-color: #dc2626 !important; color: #ffffff !important; border-radius: 9999px !important; transition: all 0.3s ease !important;">
|
||
{!! t('Kapat') !!}
|
||
</button>
|
||
<button type="button" onclick="document.getElementById('agreement').checked = true; document.getElementById('agreementModal').classList.add('hidden');"
|
||
class="inline-flex w-full justify-center items-center px-6 py-3 text-sm font-bold shadow-md hover:shadow-xl hover:-translate-y-1 focus:outline-none sm:w-auto"
|
||
style="background-color: #16a34a !important; color: #ffffff !important; border-radius: 9999px !important; transition: all 0.3s ease !important;">
|
||
<i class="uil uil-check mr-2 text-lg"></i>
|
||
{!! t('Okudum, Onaylıyorum') !!}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
@endsection
|