

Bir müşterimiz için yaptığımız Open edX kurulumunda İyzico ödeme entegrasyonuna neden ihtiyaç duyduk?
Nedir bu Oscar?
Oscar, Django için tasarlanmış, e-ticaret sayfalarının ödeme altyapısı için oluşturulmuş domain tabanlı bir framework yapısıdır. Kendi içerisinde geliştirmesi ve bakımı epey kolaydır. Open edX eğitim platformunda yer alan e-commerce framework’u, Oscar tabanında yazılmıştır.
Neden İyzico entegrasyonu?
Open edX kendi içerisinde Cybersource, Stripe ve PayPal olmak üzere bazı ödeme kanalları sunuyor. Ülkemizde ne yazık ki bu ödeme yöntemleri kullanılamamakta. Bu nedenle İyzico entegrasyonuna entegrasyonuna ihtiyaç duyuyoruz.
Neler değişti?
Open edX e-ticaret modülü her ne kadar Oscar tabanında yazılmış olsa da, çok fazla esneklik sağlamadığı noktalar var. Bunlardan en önemlisi, içerideki yapıyı takip etmek ve eklenen ödeme kaynağının bir diğerine benzer şekilde yazılması gerektiğiydi.
İyzico ürünlerinde iFrame form ya da API olmak üzere iki yöntem kullanılabiliyor. Bu noktada e-commerce yapısında form açamadığımız için API yöntemini tercih ettim. İyzico’nun sandbox ve canlı ortamları birbirinden farklı sayfalar içeriyor. Bu yüzden ikisi için de ayrı API anahtarları almak zorundasınız. Bu iki farklı API anahtarıyla hem canlı ortamda hem yerel ortamda çalışmak mümkün olmaktadır. Test kartlarıyla başarılı ve başarısız alışverişler yaparak kontrol etmek işleri kolaylaştırıyor.
Neler yaptığımı şöyle özetleyebilirim. Sistemde her bir ödeme kanalı bir processor olarak adlandırılıyor ve ilgili kaynağın tüm methodlarını barındırıyor. Öncelikle İyzico processor’u altında, ödemede kullanılabilecek tüm methodları ekleyerek başladım. Sonrasında processor’un kendisine ait bir formu ve view yapısı olması gerektiği için, ilgili yerlere bu kısımları ekledim. Ödeme formunun açılabilmesi içinse, ön tarafta gerekli HTML ve JavaScript dosyalarını oluşturarak, bu implementasyonu tamamlamış oldum. Kodlamanın sonunda, İyzico ödeme altyapısının aslında Cybersource veya Stripe kadar iyi olmadığını, API yapısının pek yapısının önemsenmediğini ve hatta bazı senaryoların hiç düşünülmediğini fark ettim. Umarım gelecekte daha iyi olacaktır.
Mutluluk sorunsuz bir yaşam değil, sorunlarla başa çıkabilme yeteneği demektir
Geliştirme ortamında bazı can sıkıcı durumlarla karşılaşılabiliyor. Bunların başında yerel ortamın yavaş çalışması geliyor. E-ticaret arayüzüne girmek, ödeme düğmesine tıklamak gibi kolay işlemler bile, genellikle bir dakikanın üzerinde sürüyor. Bu sebeple çok fazla deneme yapmaktan kaçınıp çalışacağından emin olduğunuz şekilde yazmak zorunda kalıyorsunuz. Bunun yanında başlangıçta nereden başlayacağınızı kestirmek ve yapının nasıl olduğunu anlamak da kolay değil. Bunun çözümüyse öncelikle geliştirme ortamını ayağa kaldırmak ve testlerin üzerinden geçmek oluyor. Testleri incelediğinizde aşağı yukarı nelere ihtiyacınızın olduğunun ipucunu yakalıyorsunuz. Sonraki aşama yazılımcı için en kolay kısım: Kod yazmak.
Bu arada her şeyi yapıp site configurations altında gerekli değişiklikleri yapmazsanız, uzun saatler ekrana bakabilirsiniz. Sonuç olarak Open edX platformunun e-ticaret yapısına bir ödeme kanalı kazandırmış olduk.
Bir sonraki yazımda görüşmek üzere!