diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index 8b04134..684e42c 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -17,7 +17,7 @@ class PaymentController extends Controller 'email' => 'required|email|max:255', 'phone' => 'required|string|max:20', 'price' => 'required|numeric|min:1', - 'address' => 'required|string', + 'address' => 'nullable|string', 'agreement' => 'accepted', ], [ 'name.required' => 'Lütfen adınızı giriniz.', @@ -60,7 +60,7 @@ class PaymentController extends Controller $test_mode = 0; // Canlı mod $user_name = $request->input('name').' '.$request->input('surname'); - $user_address = $request->input('address'); // Note field used as address + $user_address = $request->input('address') ?: 'Adres Belirtilmemiş'; // Fallback if not provided $user_phone = $request->input('phone'); // Callbacks should ideally be routes we define, but user provided specific URLs. @@ -104,6 +104,15 @@ class PaymentController extends Controller 'test_mode' => $test_mode, ]; + // Log request for debugging + Log::info('PayTR Request', [ + 'merchant_id' => $merchant_id, + 'merchant_oid' => $merchant_oid, + 'email' => $email, + 'payment_amount' => $payment_amount, + 'user_ip' => $user_ip, + ]); + // Curl request $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.paytr.com/odeme/api/get-token'); @@ -114,15 +123,38 @@ class PaymentController extends Controller curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_TIMEOUT, 20); - $result = @curl_exec($ch); - - if (curl_errno($ch)) { - return back()->with('error', 'PAYTR connection error. err:'.curl_error($ch)); - } + $result = curl_exec($ch); + + $curlError = curl_error($ch); + $curlErrno = curl_errno($ch); curl_close($ch); + if ($curlErrno) { + Log::error('PayTR cURL error', ['errno' => $curlErrno, 'error' => $curlError]); + return back()->with('error', 'PAYTR bağlantı hatası. Lütfen tekrar deneyin.'); + } + + if ($result === false || empty($result)) { + Log::error('PayTR returned empty response'); + return back()->with('error', 'Ödeme sisteminden yanıt alınamadı. Lütfen tekrar deneyin.'); + } + + // Log the raw response for debugging + Log::info('PayTR Raw Response', ['response' => $result]); + $result = json_decode($result, 1); + // Check if result is valid + if (!$result || !is_array($result)) { + Log::error('PayTR API returned invalid response', ['response' => $result]); + return back()->with('error', 'Ödeme sisteminden geçersiz yanıt alındı. Lütfen tekrar deneyin.'); + } + + if (!isset($result['status'])) { + Log::error('PayTR API response missing status', ['response' => $result]); + return back()->with('error', 'Ödeme sisteminden beklenmeyen yanıt alındı. Lütfen tekrar deneyin.'); + } + if ($result['status'] == 'success') { $token = $result['token']; diff --git a/public/docs.zip b/public/docs.zip deleted file mode 100644 index 5967049..0000000 Binary files a/public/docs.zip and /dev/null differ diff --git a/resources/css/app.css b/resources/css/app.css index db90777..00e74dc 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -36,7 +36,6 @@ html { .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; - line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } diff --git a/resources/views/templates/corporate/online-payment.blade.php b/resources/views/templates/corporate/online-payment.blade.php index 346c602..7a8fcf1 100644 --- a/resources/views/templates/corporate/online-payment.blade.php +++ b/resources/views/templates/corporate/online-payment.blade.php @@ -2,297 +2,247 @@ @section('content') -
-
- -
-
-
- - {!! t('256-Bit SSL Güvenli Ödeme') !!} -
-

{!! $page->title !!}

-

{!! $page->excerpt ?? t('Kredi kartınızla hızlı, kolay ve güvenli ödeme yapın.') !!}

-
-
+ + +
+
+ + @if(isset($paytr_token)) +
+ + + +
+ @else + +
+
+
+ {!! t('Kart ile Ödeme') !!}
+ + {!! t('Havale / EFT (IBAN)') !!} +
-
- @endif - @if(session('error')) -
-
-
- -
-

{!! t('Ödeme Başarısız!') !!}

-

{!! session('error') !!}

-
+ + @if(session('error') || $errors->any()) +
+ @if(session('error')) {{ session('error') }} @else {!! t('Lütfen formdaki eksikleri tamamlayın.') !!} @endif
-
-
- @endif + @endif - @if($errors->any()) -
-
-
-
- -

{!! t('Lütfen Bilgileri Kontrol Ediniz') !!}

-
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-
-
- @endif +
+
+ @csrf + + -
-
- @if(isset($paytr_token)) -
- -
-
- - - -
-
- @else - -
- -
-
- - - {!! t('DİĞER YÖNTEMLER') !!} - + +
+
+ + @error('name')
{{ $message }}
@enderror +
+ +
+ + @error('email')
{{ $message }}
@enderror +
+ +
+ + @error('phone')
{{ $message }}
@enderror +
+ +
+ + @error('address')
{{ $message }}
@enderror
-
- -
- -
- - @csrf - - -
- -
-
- -
- -
- @error('name')
{{ $message }}
@enderror - - -
-
- -
- -
- @error('surname')
{{ $message }}
@enderror - - -
-
- -
- -
- @error('email')
{{ $message }}
@enderror - - -
-
- -
- -
- @error('phone')
{{ $message }}
@enderror - - -
-
- -
- -
-
- - -
-
- -
-
- - @error('agreement')

{{ $message }}

@enderror -
-
- -
- - -
-
{!! t('Ödenecek Tutar') !!}
-
-
- - TL -
- @error('price')
{{ $message }}
@enderror -
-
- - - - - - - - -
-
- - - -
-
- - -
+ +
+ +
-
- - @endif - - @if($page->content) -
-
- {!! $page->content !!} -
-
- @endif - +
-
+ + +
+
+ {!! t('Toplam') !!} +
+ + TL +
+
+ + +
+ @endif +
+
- -
+ @endsection