Kurulum
MevvPos; WordPress 6.0, PHP 8.1 ve WooCommerce 9.0 ister. WooCommerce zorunlu bir bağımlılıktır ve eklenti başlığında bildirilir: yoksa WordPress etkinleştirmeyi reddeder, eski WordPress sürümlerinde ise eklenti hiçbir şey yapmadan durur.
- Eklentiyi Eklentiler → Yeni Ekle → Eklenti Yükle altından yükleyip etkinleştirin.
- Sol menüden MevvPos ekranını açın. WooCommerce altında da bir kısayolu vardır; satıcılar ödeme ayarlarını orada arıyor.
- Genel sekmesinden ödeme yöntemini açın ve müşterinin ödeme sayfasında göreceği başlığı yazın.
- Banka API sekmesinde bankanızı seçip bankanın verdiği bilgileri girin.
- Taksit ve Komisyon sekmesinde taksit oranlarınızı yazın.
- Yayına almadan önce bankanızın test bilgileriyle deneyin.
Ücretsiz sürüm veritabanı tablosu oluşturmaz ve zamanlanmış görev kaydetmez. Her şey WordPress seçeneklerinde ve sipariş alanlarında durur.
Pro ayrı bir eklentidir; ücretsiz sürümün yerine değil, yanına kurulur. Ücretsiz sürüm WordPress.org'a gidiyor ve orada yayımlanan her şey GPL altında dağıtılabiliyor; Pro kaynağı aynı pakette olsaydı lisans kapılarını silen herkes onu yasal olarak dağıtabilirdi. Lisans anahtarı Lisans sekmesine girilir.
WooCommerce → Ayarlar → Ödemeler → MevvPos ekranı sizi MevvPos sayfasına yönlendirir. Bu bilinçlidir: bu ayarların tek bir yeri olmalı, birbirine ters düşebilecek iki yeri değil.
Nasıl çalışır
- Bir ya da birden fazla POS kaydı tanımlarsınız. Bir POS kaydı bir bankanın sanal POS'udur: kimlik bilgileri, geçit adresi, taksit oranları.
- Müşteri ödeme adımında kartını yazar. İlk altı hane — BIN — kartı çıkaran bankayı belirtir.
- MevvPos BIN'i arar ve ödemeyi o bankadaki sizin POS'unuza gönderir; öyle bir POS'unuz yoksa varsayılan POS'a düşer.
- Taksit yalnız kart o POS'un kendi bankasının kartıysa gösterilir; bankalar başka bankanın kartına taksit yaptırmıyor.
- Müşteri bankada 3D Secure adımından geçer, banka sitenizdeki tek bir geri dönüş adresine döner.
- Geri dönüşteki imza, siparişin gerçekten kullandığı POS'un anahtarıyla doğrulanır; sipariş tamamlanır ve sonuç kaydedilir.
Kart numarası, son kullanma tarihi ve güvenlik kodu veritabanınıza ve WooCommerce oturumuna hiç yazılmaz. Saklanan tek kart verisi ilk altı hane ve tanınan banka adıdır.
POS kayıtları
POS çubuğu sekmelerin üstündedir ve her sekmede görünür. Her kart bankayı, mağaza numarasını ve gerektiğinde bir rozet gösterir.
- Varsayılan
- Daha iyi bir eşleşme bulunmadığında tahsilatı yapan POS. Her zaman tam olarak bir tane vardır.
- Pasif
- Duruyor ama tahsilat yapmıyor. Bankada henüz açılmamış bir POS'u silmek yerine pasife alın — aksi hâlde o bankanın kartını taşıyan gerçek bir müşteri ödeme yapamaz.
- Lisans bekliyor
- Kayıt duruyor ama lisans etkin olmadığı için beklemede. Hiçbir şey silinmedi; lisans yenilenince kaldığı yerden devam eder.
- API bilgileri girilmedi
- Kaydın henüz mağaza numarası yok.
Bankalar logoyla değil renk şeridiyle gösterilir. Banka logoları tescilli markadır; on beş tanesini taşımak hem hukuki risk hem sürekli bakım demek — üstelik kendi bankanızı zaten biliyorsunuz.
Son POS silinemez, son etkin POS kapatılamaz. Kart ödemesini tamamen durdurmak için Genel sekmesinden ödeme yöntemini pasife alın.
Ücretsiz sürümde tek POS tanımlanır. Fazlası Pro yeteneğidir — ve bunun sonucu olarak BIN yönlendirmesi de öyledir: tek POS varken yönlendirilecek bir yer yoktur.
Banka API — kimlik bilgileri ve geçit adresi
- Banka
- POS'u aldığınız banka. Geçit adresi ve taksit için kullanılan BIN listesi bu seçime göre gelir. Henüz karşılığı yazılmamış kurumlar "— yakında" ile listelenir ve seçilemez.
- Mağaza No (Client ID)
- Bankanın verdiği mağaza numarası.
- İşyeri Anahtarı (Store Key)
- İşyeri güvenlik anahtarı. Parola alanı olarak tutulur; kaydedildikten sonra maskeli gösterilir.
- Gate URL
- Ödeme formunun POST edileceği adres.
- Test modu
- Otomatik yönlendirmeyi durdurur; isteği gönderilmeden önce inceleyebilirsiniz.
Kaydederken İşyeri Anahtarı'nı boş bırakmak "değiştirme" demektir. Boş değeri yazmak anahtarı silerdi ve mağazanız tek bir hata mesajı vermeden ödeme almayı bırakırdı. Aynı kural diğer gizli alanlar için de geçerlidir.
Bazı aileler ek kimlik ister; form bunları yalnız seçtiğiniz banka için gösterir:
- Garanti BBVA — Üye İşyeri No (MerchantId), Provizyon Kullanıcı Adı, Provizyon Parolası.
- VakıfBank — Terminal No ve MPI adresi (boş bırakırsanız test adresi kullanılır).
- PayTR — Merchant Salt.
- iyzico, Craftgate, Sipay — ek alan yok: API anahtarı Mağaza No'ya, gizli anahtar İşyeri Anahtarı'na girilir.
Bu ek kimlikler imzaya girer. Biri eksikse imza boş değerle üretilir ve banka ödemeyi sessizce reddeder — hata yok, mesaj yok, yalnız ret.
Yedi NestPay bankası için geçit adresi banka seçiminizden gelir; Gate URL'i boş bırakabilirsiniz. Diğerlerinde alan hazır gelmez: bankanızın ya da kuruluşun verdiği adresi yazın, yoksa ödeme formunun gideceği bir yer olmaz.
Desteklenen on üç kurum
- NestPay / Asseco (Payten)
- İş Bankası, Akbank, Halkbank, QNB, Şekerbank, TEB, Ziraat Bankası
- Garanti GT3D
- Garanti BBVA
- PayFlex V4
- VakıfBank
- Ödeme kuruluşları
- iyzico, PayTR, Craftgate, Sipay
Karşılığı yazılmamış kurumlar banka listesinde bilerek duruyor, "— yakında" ile işaretli. Listeden çıkarmak hangi protokol ailelerinin eksik olduğunu görünmez yapardı. Sizinki onlardan biriyse Banka Talebi sekmesi bunu söyleyeceğiniz yer.
Yalnız NestPay imzasının, bankanın kendi yayımladığı örneğe karşı altın değerli bir testi var. Diğer her sağlayıcı kendi kaynağında beta işaretli: akış dokümana göre yazıldı ama o kurumda gerçek bir üye işyeri hesabıyla uçtan uca doğrulanmadı. Doğrulanana kadar bu etiket kalır.
Ödeme kuruluşları kart ihraç etmediği için BIN listeleri yoktur. Onlara yönlendirilmez, onları POS olarak seçersiniz.
BIN bazlı yönlendirme
Kartın ilk altı hanesi onu çıkaran bankayı belirtir. MevvPos tam olarak o altı haneye bakar.
- BIN tablosunun bir anlık görüntüsü eklentinin içinde gelir — bu sürümde 36 bankaya ait 1.449 BIN — böylece yönlendirme çevrimdışı da, ücretsiz sürümde de, kurduğunuz andan itibaren çalışır.
- Pro bunu haftada bir sunucularımızdan tazeler. Tazeleme paketteki tablonun üzerine eklenir, onu değiştirmez: eksik ya da boş bir yanıt hiçbir mağazayı BIN'siz bırakmamalı.
- Yüz BIN'den az taşıyan bir yanıt inandırıcı bulunmaz ve yazılmaz.
- Çakışmalar — aynı BIN'i iki bankanın birden sahiplenmesi — liste gönderilmeden önce bizim tarafımızda çözülür. Yerelde çözen bir mağaza kartı hem "bizim" sayar hem başka bankaya yönlendirirdi.
Tanınmayan BIN asla reddedilmez. Varsayılan POS'a düşer. Elimizde kaydı olmayan bir kartı geri çevirmek, bir arama tablosunu korumak için satış kaybetmek olurdu.
Aynı tablo ödeme adımında ikinci ve farklı bir soruyu da cevaplar: bu kart bu POS'un kendi bankasının mı? Taksit gösterilip gösterilmeyeceğine bunu karar verir — aşağıya bakın.
BIN doğruluğu ücretli bir özellik değildir. Pro'nun karşılığı güncellik, doğruluk değil: paketteki liste aynı listedir, yalnız derleme anında dondurulmuştur.
Taksit ve komisyon
Oranlar POS başına, tek çekimden on iki taksite kadar, Taksit ve Komisyon sekmesinde girilir. Yüzde olarak yazılır: %5,5 için 5.50.
- 0
- Seçenek gösterilir, komisyon alınmaz.
- Boş
- Seçenek hiç gösterilmez. Boş ile sıfır aynı şey değildir.
Komisyon sepete "N Taksit Komisyonu" adıyla, vergiye tabi bir ücret olarak eklenir ve kargo ile vergi dahil sepet tutarı üzerinden hesaplanır.
Taksit yalnız o POS'un kendi bankasının kartlarında gösterilir ve bu sunucu tarafında zorlanır — arayüzde gizlemek yetmez. Başka bankanın kartı tek çekime döndürülür ve ücret temizlenir.
Ücretsiz sürüm müşteriye en fazla üç taksit gösterir; Pro tavanı on ikiye çıkarır. Tavan üç yerde uygulanır: müşterinin gördüğü liste, formla gelen değer ve bankaya gönderilen değer. Sonuncusu önemlidir, çünkü lisans geçerliyken seçilmiş bir değer oturumda kalmış olabilir.
Ayar formu lisansınız ne olursa olsun on iki alanın hepsini gösterir. Lisans bitince alanlar kaybolsaydı, sayfayı kaydetmek daha önce girdiğiniz oranları sessizce silerdi. Tavanınızın üstündeki alanlar "Pro'da açılır" diye işaretlenir ve yazdığınız sayılar korunur.
Bankadan gelen bir taksit tablosu yoktur. Oranlar sizin girdiklerinizdir; geçmiş bir siparişin komisyonu satışın yapıldığı gün geçerli olan orandan hesaplanır — bugün oranı değiştirmek dünkü raporu yeniden yazmaz.
Ödeme akışı ve kart
Her aile 3D Secure'dan geçer. 3D'siz mod yoktur ve kapatan bir ayar bulunmaz.
- Form akışı
- NestPay, Garanti, PayTR ve Sipay: tarayıcı imzalı formu bankaya gönderir, müşteri doğrulamasını yapar, banka sitenize döner.
- Sunucu akışı
- VakıfBank, iyzico ve Craftgate: sunucunuz kuruluşla konuşur, 3D sayfasını alır, gösterir ve doğrulamadan sonra satışı sunucudan sunucuya tamamlar.
Banka her zaman sitenizdeki tek bir adrese döner: ?wc-api=mevvpos_callback. O dönüşteki imza, siparişin gerçekten kullandığı POS'un anahtarıyla doğrulanır ve bu bilgi siparişin üstünde durur — birden fazla POS varken yanlış anahtarla doğrulamak her ödemede hash hatası üretir.
Kart veritabanınıza hiç ulaşmaz. Yönlendirme süresince tarayıcıda tutulur ve sonra silinir. Ödeme sayfası açıldığında kart orada değilse — yeni sekme, sayfa yenileme, kapalı depolama, bankadan geri tuşuyla dönüş — bankaya boş alan göndermek yerine görünür bir kart formu çıkar. Kart formu bilerek varsayılan olarak görünürdür: ödeme akışının çalışması JavaScript'in çalışmış olmasına bağlı olamaz.
Banka ödemeyi onayladıysa, 3D durum kodu beklenmedik olsa bile sipariş tamamlanır; bir sipariş notu durumu kaydeder ve işlemi bankanın kendi ekranından teyit etmenizi ister. Banka "onaylandı" dediyse müşterinin kartı çekilmiştir; bunu reddetmek "kartınız çekildi ama siparişiniz olmadı" demek olurdu.
Her deneme; kullanılan POS'u, kartın bankasını ve BIN'ini, taksit sayısı ile oranını, sonucu, bankanın yanıt kodu ve mesajını, provizyon ve işlem referanslarını kaydeder.
Raporlar
Raporlar sekmesi ciroyu, başarılı işlem sayısını, başarı oranını ve tek çekim / taksitli dağılımını günlük grafikle gösterir. Bankadan dönüş bekleyen işlemler ayrı sayılır ve başarı oranına dahil edilmez.
Ücretsiz sürüm sabit 30 günlük pencereye bakar. Pro 7 / 30 / 90 gün aralıklarını ve üç kırılımı ekler:
- Taksit ve komisyon yükü — her taksit kademesinin adedi, cirosu ve komisyon yükü.
- POS ve banka kırılımı — her POS ve kartın her bankası için ciro, başarılı, başarısız ve başarı oranı.
- Red kodu dağılımı — CSV dışa aktarmayla birlikte. Tekrar eden bir red kodu çözülebilir bir şeyi gösterir: yetersiz bakiye müşteri kaynaklıdır, ama 3D doğrulama ve POS yapılandırma hataları sizde çözülür.
Raporların dayandığı veriyi ücretsiz eklenti toplar; Pro'nuz olsun olmasın geçmiş birikmeye devam eder. Böyle olmak zorunda: yükseltince geriye dönük veri üretilemez.
Yeni kurulmuş bir mağazada grafik boştur. Kayıt eklentiyle başlar; ekran ilk ödeme denemesinden sonra dolar.
Banka talebi ve destek
- Banka Talebi
- Henüz yazılmamış her kurumu gerekçesiyle listeler: ya protokol ailesi belirlenmemiştir, ya aile bilinir ve doküman beklenmektedir. Bunlardan biri için talep açabilir ya da listede hiç olmayan bir kurumu yazabilirsiniz.
- Destek
- Konu, ilgili POS ya da banka, ne yaptığınızda ne olduğu ve bankanın gösterdiği hata mesajı.
Destek formu kart numaranızı ve güvenlik kodunuzu yazmamanızı ister. Bir ödeme sorununu teşhis etmek için hiçbir zaman gerekmezler ve iki formda da ödeme ya da kart verisi gönderilmez.
Ücretsiz eklenti sunucularımıza yalnız siz bu düğmelere bastığınızda ulaşır. Zamanlanmış hiçbir gönderim yoktur ve ücretsiz sürümde lisans çağrısı hiç yapılmaz.
Ücretsiz ve Pro
Ayrım sayıdadır, özellikte değil. On üç kurumun hepsi, 3D Secure, test modu, sınırsız işlem hacmi ve temel ciro raporu ücretsiz sürümdedir.
- Ücretsiz
- Tek POS. Müşteriye en fazla üç taksit. Sabit 30 günlük ciro özeti. Eklentiyle gelen BIN tablosu.
- Pro
- Sınırsız POS kaydı — ve dolayısıyla BIN yönlendirmesi. On iki taksite kadar. Rapor aralıkları ve POS, banka, taksit, red kodu kırılımları; CSV dışa aktarma. Haftalık canlı BIN tazelemesi. Pro eklentisinin kendi otomatik güncellemesi.
Lisans bittiğinde ya da hiç yokken:
- Mağazanız ödeme almaya devam eder. Ödeme yolunun hiçbir yerinde lisans kontrolü yoktur. Bir mağazanın cirosunu kesmek, yenileme hatırlatmasının kabul edilebilir bir yolu değildir.
- Varsayılan POS çalışmaya devam eder; 3D Secure ve test modu dahil.
- Fazladan POS kayıtları beklemeye geçer ama asla silinmez, kimlik bilgileri de öyle. Yenilemede kaldıkları yerden devam ederler.
- Taksit tavanı üçe döner. Üstünde girdiğiniz oranlar korunur, temizlenmez.
- Raporlar 30 günlük özete döner. Toplanmış geçmiş silinmez.
- Canlı BIN tazelemesi durur; paketteki tablo çalışmaya devam eder.
Sunucularımıza ulaşılamıyorsa, etkin bir lisans son başarılı doğrulamaya dayanarak yedi gün daha açık kalır. Ama kendi bitiş tarihi geçmiş bir lisans buna bakmadan süresi dolmuş sayılır — aksi hâlde adresimizi engellemek, lisansı bir hafta uzatmanın yolu olurdu.
Bir şey çalışmıyorsa
- Banka her ödemeyi işe yaramaz bir mesajla reddediyor
- Neredeyse her zaman imza. Yanlış imza hiçbir yerde hata üretmez — banka yalnızca reddeder. Mağaza numarasını, işyeri anahtarını ve o ailenin ek kimliklerini kontrol edin: hepsi imzaya girer. İşe yarayan bir ölçü şudur: bankalar imza hatasına ve geçersiz karta farklı yanıt verir; "geçersiz kart" mesajı almak imzanızın doğru olduğunun kanıtıdır.
- Birden fazla POS varken dönüşte hash hatası
- Geri dönüş oturumu olmayan ayrı bir istektir. MevvPos siparişin hangi POS'u kullandığını kaydeder ve o anahtarla doğrular. Bir siparişin ödendiği POS kaydını sildiyseniz doğrulama varsayılan POS'a düşer ve başarısız olabilir.
- Müşteri boş bir ödeme sayfasıyla karşılaşıyor ya da Öde düğmesi bir şey yapmıyor
- Bir önbellek/optimizasyon eklentisi betikleri geciktiriyor. LiteSpeed'de
mevvpos,jqueryve WooCommerce ön yüz betiklerini geciktirme listesinden çıkarın. Kart formu varsayılan olarak göründüğü için akış yine çalışır, ama otomatik yönlendirme çalışmaz. - Ödeme başarılı ama sipariş "beklemede" kalıyor
- Banka ya da kuruluş geri dönüş adresine ulaşamamış.
?wc-api=mevvpos_callbackadresinin dışarıdan erişilebilir olduğundan emin olun — bakım modu, IP kısıtı ya da sitenin önündeki bir giriş duvarı bunu engeller. - Ödeme formu aynı sayfaya geri gönderiyor
- Adresi hazır gelmeyen bir banka için Gate URL alanı boş. Bankanızın ya da kuruluşun verdiği adresi yazın.
- Test modu açık ama ödeme yine gerçek bankaya gidiyor
- Test modu otomatik yönlendirmeyi durdurur ve isteği size gösterir; NestPay bankalarında geçit adresini değiştirmez. Test ederken bankanızın test adresini Gate URL alanına yazın.
- Taksit görünmüyor
- Ya o kademenin oranı sıfır değil boş, ya kart başka bankanın, ya da ücretsiz sürümün üç taksitlik tavanının üstündesiniz.
- Güncellemeden sonra kartlar yanlış POS'a gidiyor
- Eski sürümler elle yazılmış ve bir kısmı hatalı BIN aralıkları taşıyordu. Her POS'un gerçekten hangi bankada olduğuna göre kayıtlı olduğunu doğrulayın.
- Yönetim ekranı stilsiz görünüyor ya da bir düzeltme gelmiyor
- Tarayıcı önbelleği bayat. Sayfayı önbelleği atlayarak yenileyin.
Sınırlar
Aşağısı bilerek böyledir. Hiçbiri hata değil.
- WordPress'ten iade ya da iptal yok. Eklenti WooCommerce'in iade arayüzünü uygulamıyor ve hiçbir sağlayıcıda iade çağrısı yok. İadeyi bankanızın kendi ekranından yapın.
- Yalnız Türk lirası. Para birimi kodu her sağlayıcıda sabittir; çoklu para birimi ayarı yoktur.
- Kayıtlı kart, tokenizasyon, abonelik ve tekrarlayan ödeme yok.
- Ön provizyon yok. Her işlem doğrudan satıştır.
- Kural tabanlı yönlendirme yok. Yönlendirme yalnız kartı çıkaran bankaya göredir — tutara, kart markasına ya da ülkeye göre değil.
- Ödeme formu klasik WooCommerce ödeme sayfası için yazıldı. Blok tabanlı Ödeme sayfası için ayrı bir bileşen pakette gelmiyor.
- 3D Pay Hosting bilerek seçilmedi. Barındırılan sayfa PCI kapsamını kaldırır ama BIN'i ve taksit tablosunu da kaldırır — bu eklentinin bütün değeri onların mümkün kıldığı yönlendirmede.
- BIN düzenleyici yok. Tablo bizim tarafımızdan yönetilir ve canlı tazelemeyle birleştirilir; elle düzenlenecek bir ekran yoktur.
- Yirmi altı kurum listede var ama yazılmadı. Boşluk görünsün diye listede duruyorlar.
- NestPay dışındaki her sağlayıcı, gerçek bir üye işyeri hesabıyla uçtan uca doğrulanana kadar kendi beyanıyla betadır.
- Sekmeler sayfa içidir. Kenar çubuğundaki satırlar MevvPos ekranını açar; sekmeler sayfanın kendi üstünden değiştirilir.
Hiçbir biçimde saklanmayanlar: kart numarası, son kullanma tarihi ve güvenlik kodu. Saklanan tek kart verisi ilk altı hane ve onun gösterdiği bankadır. Güvenlik kodunu saklamak her koşulda yasaktır, üstelik maskelenmişi bile uzunluğunu ele verir.