ZEN.COM
ZEN.COM barındırılan ödeme sayfası, kart, BLIK, banka transferi ve yerel yöntemler; sonuç sunucudan sunucuya IPN ile gelir.
Gereken bilgiler
my.zen.com → mağazanızı seçin → Store settings → Terminal → ilgili terminali seçin. Üç değer gerekir:
merchant_uuid: Terminal UUIDsecret_key: Paywall secret (checkout isteğinin imzası bununla hesaplanır)webhook_secret: IPN secret (ZEN'in gönderdiği bildiriminhashalanı bununla doğrulanır)
Panelinizde Ayarlar → Ödemeler → Yöntem ekle → ZEN.COM seçin, üç değeri girin.
Test ortamı: ZEN'in test hesabı ayrı bir ortamdır (secure.zen-test.com). Test terminalinizin değerlerini girip sandbox (test) modu kutusunu işaretleyin; canlıya geçerken canlı terminalin değerlerini girip kutuyu kaldırın.
Bildirim (IPN) adresi
Panel her ödeme isteğine kendi bildirim adresini customIpnUrl olarak ekler; ZEN o ödeme için bu adrese bildirim gönderir. Adres:
https://<panel-alan-adınız>/payments/zen/callback
Yine de aynı adresi my.zen.com'da Store settings → Terminal → IPN URL alanına yazmanızı öneririz: customIpnUrl boş kalırsa ZEN oradaki adresi kullanır. Terminalin IPN'i her zaman açık olmalıdır; bakiye yalnız bu bildirimle yüklenir.
Dönüş adresleri (urlSuccess / urlFailure) da her isteğe eklenir; ZEN panelinde ayrıca bir şey yapılmaz.
Akış
- Müşteri tutarı girer, ZEN.COM'u seçer. Telefon zorunlu değildir.
- Panel, imzalı bir isteği ZEN'e gönderir (
terminalUuid, tutar, para birimi, ödeme numaramızmerchantTransactionId, müşteri adı/e-postası, tek satırlık "Bakiye yükleme" kalemi). ZEN birredirectUrldöner, müşteri ZEN'in ödeme sayfasına yönlendirilir; kart bilgisi ve 3D Secure orada. - Ödeme sonuçlanınca müşterinin tarayıcısı panele geri döner ("Bakiye yükle" sayfası). Bu dönüş bakiye yüklemez.
- ZEN'in sunucusu bildirim adresine JSON bir IPN gönderir. Panel
hashalanını IPN secret ile yeniden hesaplar (sha256(merchantTransactionId + currency + amount + status + IPN secret)); eşleşmeyen bildirim reddedilir. - Doğrulanan bildirimde durum
ACCEPTEDise bakiye yüklenir. Panel bildirime{"status":"ok"}ile cevap verir; cevap alamayan ZEN aynı bildirimi bir gün boyunca yeniden gönderir.
Aynı işlem + aynı durum için gelen ikinci bildirim yok sayılır; bakiye iki kez yüklenmez. PENDING sonrası gelen ACCEPTED ayrı bir olay olarak işlenir.
Müşterinin adı ZEN'e kullanıcı adından üretilir ve imza hesabında büyük/küçük harf farkı sorun çıkarmasın diye Türkçe karakterler ASCII'ye çevrilir ("Şükrü" → "Sukru"). Adres alanları ZEN'de zorunlu olmadığı için gönderilmez.
Durumlar
| ZEN durumu | Panelde |
|---|---|
ACCEPTED |
tamamlandı, bakiye yüklendi |
REJECTED, CANCELED |
başarısız |
AUTHORIZED |
beklemede (kart provizyonu alındı, tahsilat yapılmadı). ZEN ACCEPTED gönderince tamamlanır ya da Admin → Ödemeler'den tamamlayabilirsiniz |
NEW, PENDING |
beklemede, sonraki bildirim beklenir |
TRT_PURCHASE dışındaki bildirimler (iade vb.) doğrulanır ve cevaplanır ama bakiye değiştirmez.
Para birimleri
ZEN'in doğrudan desteklediği para birimleri: EUR, GBP, PLN, USD, AED, AUD, CAD, CHF, CNY, CZK, DKK, HKD, HUF, ILS, JPY, KES, MXN, NOK, NZD, QAR, RON, SAR, SEK, SGD, THB, TRY, UGX, ZAR. Panelinizin para birimi bunlardan biri olmalı; başka bir birimde ödeme başlatılmaz. Tutar her zaman iki ondalıkla gönderilir. Terminalinizde hangi para birimlerinin ve ödeme yöntemlerinin açık olduğu ZEN sözleşmenize bağlıdır.
Sık sorunlar
- Ödeme sayfası açılmıyor, "ZEN: …" hatası: Paywall secret ya da Terminal UUID yanlış, ya da test/canlı karışmış. Hata mesajı ZEN'in döndürdüğü metindir.
- Aynı ödeme için ikinci deneme reddediliyor: ZEN aynı
merchantTransactionIdile ikinci isteği kabul etmez. Yeni bir ödeme başlatın. - Ödeme ZEN'de ACCEPTED ama bakiye yok: IPN secret yanlışsa bildirim "invalid signature" ile reddedilir; my.zen.com'daki IPN secret ile paneldeki
webhook_secretaynı olmalı. Bildirim adresinin dışarıdan erişilebilir ve HTTPS olduğundan emin olun (DNS devri tamamlanmamış alan adına bildirim ulaşmaz). - Ödeme "beklemede" kaldı: ZEN henüz son durumu göndermedi (bazı yerel yöntemlerde onay gecikir) ya da durum
AUTHORIZED. Admin → Ödemeler'deki nota bakın.
FollowerHQ