PHP code example of developertugrul / paytr-laravel-client
1. Go to this page and download the library: Download developertugrul/paytr-laravel-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
developertugrul / paytr-laravel-client example snippets
// PayTR Sepet Formatı: [['Ürün Adı', 'Fiyat', 'Adet'], ...]
$basket = [
['Test Ürün 1', '100.00', 1], // [ürün_adı, fiyat, adet]
['Test Ürün 2', '50.50', 2], // [ürün_adı, fiyat, adet]
['Test Ürün 3', '25.25', 3], // [ürün_adı, fiyat, adet]
];
// Paket otomatik olarak sepeti base64_encode(json_encode(...)) ile kodlar
use Paytr\Facades\Paytr;
// Direct API ile ödeme
$response = Paytr::payment()->pay([
// Zorunlu parametreler (otomatik alınır: merchant_id, user_ip, test_mode, debug_on, client_lang)
'merchant_oid' => 'TEST_' . time(), // Benzersiz sipariş numarası
'email' => '[email protected] ',
'payment_amount' => 100.00, // PayTR'de ondalık nokta kullanılır
'payment_type' => 'card',
'installment_count' => 0,
'currency' => 'TL',
'non_3d' => 0,
'request_exp_date' => date('Y-m-d H:i:s', strtotime('+1 hour')),
// Müşteri bilgileri
'user_name' => 'John Doe',
'user_address' => 'İstanbul, Türkiye',
'user_phone' => '5551234567',
// URL'ler (doğru isimlendirme)
'merchant_ok_url' => 'https://example.com/success',
'merchant_fail_url' => 'https://example.com/fail',
// Sepet (PayTR formatında)
'basket' => [
['Test Ürün', '100.00', 1], // [ürün_adı, fiyat, adet]
],
// Direct API için zorunlu kart bilgileri
'cc_owner' => 'John Doe',
'card_number' => '4355084355084358',
'expiry_month' => '12',
'expiry_year' => '25',
'cvv' => '000',
// Opsiyonel parametreler
'lang' => 'tr',
'sync_mode' => 0, // 0: async, 1: sync
'non3d_test_failed' => 0,
'card_type' => '', // Boş bırakılabilir
]);
// iFrame API ile token oluşturma
$token = Paytr::payment()->createIframeToken([
'merchant_oid' => 'TEST_' . time(),
'email' => '[email protected] ',
'payment_amount' => 100.00,
'user_name' => 'John Doe',
'user_address' => 'İstanbul, Türkiye',
'user_phone' => '5551234567',
'merchant_ok_url' => 'https://example.com/success',
'merchant_fail_url' => 'https://example.com/fail',
'basket' => [
['Test Ürün', '100.00', 1], // [ürün_adı, fiyat, adet]
],
]);
// Ödeme durumu sorgulama
$status = Paytr::payment()->getPaymentStatus('ORDER123');
// Tam iptal
Paytr::cancel()->cancel('ORDER123');
// Kısmi iptal
Paytr::cancel()->partialCancel('ORDER123', 5000); // 50 TL
// Yeni kart kaydetme
$cardToken = Paytr::card()->storeCard([
'customer_id' => 'CUST123',
'cc_owner' => 'John Doe',
'card_number' => '4111111111111111',
'expiry_month' => '12',
'expiry_year' => '2025',
'cvv' => '123',
]);
// Kayıtlı kartla ödeme
Paytr::card()->payWithCard($cardToken, [
'amount' => 10000,
'merchant_oid' => 'ORDER123',
'installment_count' => 0,
]);
// Kartları listeleme
$cards = Paytr::card()->listCards('CUST123');
// Kart silme
Paytr::card()->deleteCard($cardToken);
// routes/paytr.php dosyasında
Route::post('/paytr/webhook', [WebhookController::class, 'handle'])
->middleware('paytr.signature');
use Paytr\Facades\Paytr;
// 1. Link ile ödeme oluşturma
$link = Paytr::link()->createLink([
'email' => '[email protected] ',
'amount' => 10000,
'user_name' => 'John Doe',
'user_address' => 'İstanbul',
'user_phone' => '5551234567',
'basket' => [
['name' => 'Ürün 1', 'price' => 10000, 'quantity' => 1],
],
]);
// Link silme
Paytr::link()->deleteLink($link['link_id']);
// Link SMS/Email bildirimi
Paytr::link()->sendLinkNotification($link['link_id'], 'sms');
// 2. Ön Provizyon (Pre-Provision)
Paytr::payment()->preProvision([
'merchant_oid' => 'ORDER123',
'email' => '[email protected] ',
'amount' => 10000,
'user_name' => 'John Doe',
'user_address' => 'İstanbul',
'user_phone' => '5551234567',
'basket' => [
['name' => 'Ürün 1', 'price' => 10000, 'quantity' => 1],
],
]);
// 3. EFT/Havale iFrame ile ödeme
Paytr::payment()->createEftIframe([
'merchant_oid' => 'ORDER123',
'email' => '[email protected] ',
'amount' => 10000,
'user_name' => 'John Doe',
'user_address' => 'İstanbul',
'user_phone' => '5551234567',
'basket' => [
['name' => 'Ürün 1', 'price' => 10000, 'quantity' => 1],
],
]);
// 4. Platform Transfer işlemleri
Paytr::platform()->createTransfer([
'amount' => 10000,
'iban' => 'TR000000000000000000000000',
'description' => 'Alt bayi ödemesi',
]);
Paytr::platform()->getTransferResult('TRANSFER_ID');
Paytr::platform()->getReturningPayments([
'date_start' => '2024-01-01',
'date_end' => '2024-01-31',
]);
Paytr::platform()->sendReturningPayment([
'trans_id' => '123456',
'amount' => 5000,
'iban' => 'TR000000000000000000000000',
'name' => 'John Doe',
]);
// 5. BKM Express ile ödeme
Paytr::payment()->payWithBkmExpress([
'merchant_oid' => 'ORDER123',
'email' => '[email protected] ',
'amount' => 10000,
'user_name' => 'John Doe',
'user_address' => 'İstanbul',
'user_phone' => '5551234567',
'basket' => [
['name' => 'Ürün 1', 'price' => 10000, 'quantity' => 1],
],
]);
// 6. Taksit oranı sorgulama
Paytr::payment()->getInstallmentRates('411111');
// 7. BIN sorgulama
Paytr::payment()->lookupBin('411111');
// 8. İşlem detayı sorgulama
Paytr::payment()->getTransactionDetail('ORDER123');
// 9. Ödeme raporu (statement)
Paytr::payment()->getPaymentStatement([
'date_start' => '2024-01-01',
'date_end' => '2024-01-31',
]);
// 10. Ödeme detayı sorgulama
Paytr::payment()->getPaymentDetail('PAYMENT_ID');
// 11. İade durumu sorgulama
Paytr::refund()->getRefundStatus('ORDER123');
// 12. Tekrarlayan ödeme (recurring)
Paytr::card()->recurringPayment($cardToken, [
'amount' => 10000,
'merchant_oid' => 'ORDER123',
'installment_count' => 0,
]);
bash
# Patch versiyonu (hata düzeltmeleri) - 1.0.0 -> 1.0.1
php version-update.php patch
# Minor versiyonu (yeni özellikler) - 1.0.0 -> 1.1.0
php version-update.php minor
# Major versiyonu (büyük değişiklikler) - 1.0.0 -> 2.0.0
php version-update.php major