Ödeme, iki moddan birinde açılır.
Panel, sayfanızın içinde işlenen satır içi bir paneldir. Masaüstünde sağdan içeri kayar ve genişliği pane.width ile sınırlandırılır; mobilde alttan yukarı kayar. Ziyaretçi sitenizde kalır ve Escape tuşuna bastığında veya karartılmış alana tıkladığında panel kapanır.
Açılır pencere, ziyaretçinin ekranında ortalanmış ayrı bir tarayıcı penceresidir. İstemci, arka planı temizleyebilmek için pencerenin kapatılmasını izler.
Satır içi ödeme, güvenilir bir kaynak gerektirir
Panel modu, Entase ödemesini alan adınızda bir iframe içinde işler; bu nedenle yalnızca açıkça yetkilendirdiğiniz alan adlarında izin verilir. Ödemeyi açan her alan adını Ayarlar → Entegrasyonlar bölümündeki Güvenilir kaynaklar listesine ekleyin – bkz. Entegrasyonlar ve ödeme özelleştirmesi.
www. önekinin dahil edilip edilmediği önemlidir. Sitenizin hangi biçimde sunulduğundan emin değilseniz ikisini de ekleyin.
Alan adınız listede değilse ödeme yine çalışır – yalnızca açılır pencere olarak açılır.
'auto' nasıl çözülür
Varsayılan checkoutMode: 'auto' ile istemci şu sırayla karar verir:
- HTTPS değil → açılır pencere. Satır içi ödeme, güvenli olmayan bir sayfada asla kullanılmaz.
localhostveya127.0.0.1→ panel; konsola bir uyarı kaydedilir. Bu, satır içi düzenle geliştirme yapabilmeniz için sağlanan bir kolaylıktır; üretim alan adınıza izin verilip verilmediği hakkında hiçbir şey söylemez.- Diğer durumlarda → istemci,
pkgöndererek hesabı tanımlayıp bu kaynağın satır içi ödemeyi kullanıp kullanamayacağını Entase'ye sorar. Yanıt panel içeriyorsa mod panel olur.
Bu yanıt gelene kadar mod popup olur. Sizi en çok şaşırtması muhtemel davranış budur: denetim eşzamansızdır; dolayısıyla sayfa yüklenir yüklenmez – ziyaretçinin herhangi bir şeye tıklama fırsatı olmadan önce – tetiklenen bir book() çağrısı, kusursuz şekilde yapılandırılmış bir alan adında bile açılır pencere açabilir. Uygulamada, gerçek bir tıklama her zaman denetim tamamlandıktan çok sonra gerçekleşir. Ödemeyi otomatik olarak açıyorsanız algılamaya güvenmek yerine modu zorlayın.
Modu zorlama
Algılamayı tamamen atlamak için checkoutMode değerini açıkça ayarlayın:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Ya da tek bir rezervasyon için geçersiz kılın:
entase.book('EVENT_ID', { checkoutMode: 'popup' });Güvenilir kaynak olmayan bir alan adında 'pane' değerini zorlamak izin vermez – panel açılır, ancak içindeki ödeme sayfanızla iletişim kuramaz. Bilinçli bir seçim olarak 'popup' kullanın ve izin verilen her yerde satır içi ödeme istediğinizde 'auto' değerini bırakın.
Tanınmayan bir değer yok sayılır ve 'auto' olarak ele alınır.
Çalışma zamanında modu okuma ve değiştirme
entase.getCheckoutMode(); // 'pane' veya 'popup' – asla 'auto' değil
entase.setCheckoutMode('popup'); // sonraki her book() çağrısına uygulanırgetCheckoutMode(), çözümlenmiş modu döndürür; dolayısıyla gerçekten ne olacağını bildirir. Modu yeniden 'auto' olarak ayarlamak algılamayı tekrar çalıştırır.
Açılır pencere engelleyicileri
Tarayıcılar yalnızca bir kullanıcı hareketi sırasında window.open() çağrısına izin verir. book() çağrısını doğrudan bir tıklama işleyicisinin içinde yapın – await, fetch veya setTimeout sonrasında değil; o zamana kadar hareketin süresi dolmuş olur ve açılır pencere engellenir.
// Engellenir: book() çalıştığında kullanıcı hareketi artık geçerli değildir.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Sorun yok: önce kimliği çözümleyin, tıklamada açın.
button.addEventListener('click', () => entase.book(button.dataset.eventId));Bu yalnızca açılır pencere modunu etkiler. Panel modu sayfada bir öğe oluşturur ve buna tabi değildir.