# PayTR elmas satışını etkinleştirme

Paket, PayTR iFrame ödeme oturumu oluşturma ve imzalı sunucu bildirimiyle elmas yükleme kodunu içerir. **Henüz gerçek bir işyeri hesabıyla dış PayTR uçtan uca tahsilat testi yapılmadı.** Yerel testler sağlayıcı yanıtını taklit eder; bildirim imzası, tutar, işlem tekrarları ve test/canlı ayrımı gerçek PHP/SQLite üzerinde çalıştırıldı.

1. PayTR işyeri hesabını ve oyun/dijital ürün satışına uygun hesabını kendi adına hazırla. Anahtarları sohbet veya tarayıcı arayüzüne yazma.
2. PHP cURL, güncel CA sertifikaları ve HTTPS gerekir. TLS doğrulamasını kapatma.
3. `config/paytr.example.php` dosyasını web kökü dışındaki `config/paytr.php` olarak kopyala. `merchant_id`, `merchant_key`, `merchant_salt` bilgilerini sunucuda doldur. `enabled=true`, `test_mode=true` ile başla.
4. PayTR panelindeki Bildirim URL alanına `https://oyun.adresin.com/paytr-callback.php` yaz. Alt klasör kurulumunda gerçek public yolunu ekle. Bu adres oturum, CSRF veya CAPTCHA istemez; her bildirimin HMAC imzasını ve kayıtlı sipariş tutarını doğrular.
5. Admin → Elmas Paketleri bölümünden fiyatları kuruş olarak ayarla. Oyuncu → Tersane → Elmas al üzerinden test işlemini başlat. Gerçek kart bilgilerini uygulamanın ad/adres alanlarına yazma; kart formu PayTR iFrame içindedir.
6. PayTR panelinde test sonucunun tamamlandığını ve oyundaki siparişin **Test başarılı** olduğunu gör. Test siparişleri kullanılabilir elmas eklemez. Başarısız bildirim ve aynı bildirimin tekrarı da kontrol edilmeli.
7. PayTR hesabının canlı geçişini tamamladıktan sonra `test_mode=false` yap. Kontrollü bir gerçek işlemle tahsilatı, tek sefer elmas yüklenmesini ve işlem kayıtlarını doğrula; sonra mağazayı oyunculara aç.

Tek çekim/TL kullanılır. Tutar ve elmas adedi sipariş açılırken sunucuda sabitlenir. Başarı dönüş sayfası bakiye değiştirmez. Bakiye yalnız doğru imzalı, doğru tutarlı, başarılı sunucu bildirimiyle güncellenir. Aynı sipariş için ikinci bildirim tekrar elmas vermez. Test işaretli sipariş sonradan yapılandırma değişse bile canlı bakiyeye yüklenmez.

Yeni ödeme oturumları kapatıldığında bile daha önce açılmış işlemlerin bildirimlerini işlemek için anahtarları koru. `awaiting` durumundaki PayTR siparişleri yönetici tarafından manuel onaylanamaz. Havale siparişleri ayrı `pending` akışındadır. Oyuncunun adı/adresi/telefonu yalnız ödeme sağlayıcısına gönderilir; bu sürüm bunları oyun veritabanına kaydetmez. Proxy varsa güvenilir gerçek IP aktarımını sunucu düzeyinde kur; uygulama tarayıcıdan gelen X-Forwarded-For değerine güvenmez.

İade bu sürümde sağlayıcı panelinde/bankada yapılır; ardından admin **İadeyi kaydet** ile elmasları geri alır ve kaydı oluşturur. Harcanmış elmas varsa otomatik geri alma engellenir, hesap elle incelenmelidir. Otomatik sağlayıcı iade API'si ve ters ibraz entegrasyonu dahil değildir.

Resmi protokol kaynakları:
- https://dev.paytr.com/iframe-api/iframe-api-1-adim
- https://dev.paytr.com/iframe-api/iframe-api-2-adim
