Flask App'e payment section nasıl eklenir?

Can Deger

Femtopat
Katılım
27 Mart 2023
Mesajlar
63
Daha fazla  
Cinsiyet
Erkek
Sevgili arkadaşlar, ben bir flask uygulamasi yaptim. Cok basit bir uygulama olarak ongorebilirsiniz. Lakin, buna bir odeme alani eklemek istiyorum. Ek olarak, mumkun olursa kupon secenekleride koymak istiyorum. Sizce bunu nasıl basarabilirim? Bana yol gosterecek herkese simdiden selam olsun ve tesekkurlerimi iletiyorum.
 
Son düzenleyen: Moderatör:
Çok geniş bir soru olmadı mı? Hangi ödeme sağlayıcısını kullanacaksan onunun API'sine uygun bir yol çizmelisin.
Evet biraz oyle oldu farkindayim 😖 . Soyleydi aslinda ben bir Flask uygulamasi yaptim. Bunu aslinda Wordpress'e koymam lazimdi. Mesela, benim Flask sayfalarimi routelayamadim. Cozemedim. Sonra eger onlari routelayabilseydim. Odeme kismini yapmaya calisacaktim. Kullanici albumden secip satin alacakti boylelikle stajyerlik unvanindan kurtulacaktim ama bir cozum getiremedim. Sadece tek basima yapiyorum arastirip cozuyorum. Yuzdum yuzdum karaya 1 metre kaldi cikamiyoruz. Altini cizmek isterim pro-kickbox'tan self-taught developer olma yolunda gidiyorum. Bazi noobluklarim olabilir 😇. Velhasil, durum boyle. Aslinda hedefim suydu iste: Flask'i routelayacaktim sonra JS ile `Cart` icindeki producti AJAX ile alip kontrol edicektim. Mesela, kullanici secti aldi o zaman onaylandiginda uygulamam secmeye izin verecek.
 
Evet biraz oyle oldu farkindayim 😖 . Soyleydi aslinda ben bir Flask uygulamasi yaptim. Bunu aslinda Wordpress'e koymam lazimdi. Mesela, benim Flask sayfalarimi routelayamadim. Cozemedim. Sonra eger onlari routelayabilseydim. Odeme kismini yapmaya calisacaktim. Kullanici albumden secip satin alacakti boylelikle stajyerlik unvanindan kurtulacaktim ama bir cozum getiremedim. Sadece tek basima yapiyorum arastirip cozuyorum. Yuzdum yuzdum karaya 1 metre kaldi cikamiyoruz. Altini cizmek isterim pro-kickbox'tan self-taught developer olma yolunda gidiyorum. Bazi noobluklarim olabilir 😇. Velhasil, durum boyle. Aslinda hedefim suydu iste: Flask'i routelayacaktim sonra JS ile `Cart` icindeki producti AJAX ile alip kontrol edicektim. Mesela, kullanici secti aldi o zaman onaylandiginda uygulamam secmeye izin verecek.
İstersen önce sepet ve havale ile ödeme işlemlerini halletmeye çalışalım. Spagetti bir program içinde boğuluyor gibisin. Elimi tut :)

Veritabanı yapısı nasıl? product list aldığın bir /cart sayfası gerekiyor. Burada gelen ürünleri veritabanından bulup sırasıyla listelemelisin. - - Sepet düzenleme işlemleri sonra!
Buradan ilerlediğimizde bir sipariş oluşturulmalı. Ardından ödeme sayfasına yönlendirilmeliyiz. - - Ödeme yapılmadıkça veritabanında sipariş "Ödenmedi" olarak kalmalı. Veritabanında buna özel bir de ödeme_status yazsan önbellek için iyi olur.
Ödeme sayfasına sipariş_id ile gitmeliyiz. Siparişin tutarına göre ödeme yapılınca, burada havale için sadece havale bilgilerini göstereceğiz, bir de /payment_confirm olmalı. Gelen isteği, çalışacağın ödeme sistemine göre düzenleyecek olsan da, şimdilik temel bir {"order_ID", "paid_amount"} isteği alsan yeterli. Bu da kartla ödemede, ödeme aracı şirketin sana gönderdiği onay olacak.
Havale ile ödeme de panelden elle bir ödeme oluşturtacak.

Değinmeyi unuttuğum şey de yapısı:

Sipariş ve ödemeler ayrı olacak. Ödemeleri birer fatura gibi de düşünebilirsin. Ödemeler ve siparişleri birbirine one to one veya one to manyolarak bağlayabilirsin. One to many yapısıyla birden fazla ödemeleri, örneğin başarısız ödemeleri ve farklı ödeme yöntemleriyle denemeleri görebilirsin. Panelden ödemelerin geçmişi gözükür. Havale için elle ödeme aldım olarak girilir ve siparişin ödeme_status değeri de true yapılır.
 
İstersen önce sepet ve havale ile ödeme işlemlerini halletmeye çalışalım. Spagetti bir program içinde boğuluyor gibisin. Elimi tut :)

Veritabanı yapısı nasıl? product list aldığın bir /cart sayfası gerekiyor. Burada gelen ürünleri veritabanından bulup sırasıyla listelemelisin. - - Sepet düzenleme işlemleri sonra!
Buradan ilerlediğimizde bir sipariş oluşturulmalı. Ardından ödeme sayfasına yönlendirilmeliyiz. - - Ödeme yapılmadıkça veritabanında sipariş "Ödenmedi" olarak kalmalı. Veritabanında buna özel bir de ödeme_status yazsan önbellek için iyi olur.
Ödeme sayfasına sipariş_id ile gitmeliyiz. Siparişin tutarına göre ödeme yapılınca, burada havale için sadece havale bilgilerini göstereceğiz, bir de /payment_confirm olmalı. Gelen isteği, çalışacağın ödeme sistemine göre düzenleyecek olsan da, şimdilik temel bir {"order_ID", "paid_amount"} isteği alsan yeterli. Bu da kartla ödemede, ödeme aracı şirketin sana gönderdiği onay olacak.
Havale ile ödeme de panelden elle bir ödeme oluşturtacak.

Değinmeyi unuttuğum şey de yapısı:

Sipariş ve ödemeler ayrı olacak. Ödemeleri birer fatura gibi de düşünebilirsin. Ödemeler ve siparişleri birbirine one to one veya one to manyolarak bağlayabilirsin. One to many yapısıyla birden fazla ödemeleri, örneğin başarısız ödemeleri ve farklı ödeme yöntemleriyle denemeleri görebilirsin. Panelden ödemelerin geçmişi gözükür. Havale için elle ödeme aldım olarak girilir ve siparişin ödeme_status değeri de true yapılır.
Yardim eline hayir demem 😥. Simdi, aslinda bu kismi anladim. Istersen musaitsen discorddan 5 dakika gosterebilirim yapmak istedigimi. Zaten bu cozum yapisi benim icin kolay gibi. Yani mantiksal olarak sizin gibi dusundum yada ona yakinim diyebilirim. Sadece benim aklimi karistiran konuya nasil saldirmam gerektigi. Buarada Armut'tan bana yardimci olabilecek hocada ariyorum. Elimde ne kaynak olabilirse onun ile cozmeye calisiyorum. Eger uygun gorurseniz `hageshiku` discord name'im.
 
Yardim eline hayir demem 😥. Simdi, aslinda bu kismi anladim. Istersen musaitsen discorddan 5 dakika gosterebilirim yapmak istedigimi. Zaten bu cozum yapisi benim icin kolay gibi. Yani mantiksal olarak sizin gibi dusundum yada ona yakinim diyebilirim. Sadece benim aklimi karistiran konuya nasil saldirmam gerektigi. Buarada Armut'tan bana yardimci olabilecek hocada ariyorum. Elimde ne kaynak olabilirse onun ile cozmeye calisiyorum.
Öncelikle buradan hiçbir özel mekana geçemeyiz, bunu aklınızdan bir çıkarın.

Programın ne yaptığını kodlar ve görsel çizimler ile açıklarsanız üzerinden anlatabilirim. Müsait olduğumda da veritabanı ve fonksiyon şemaları ile anlatımımı destekleyeceğim.

Aceleniz yoktur inşallah?
 
Öncelikle buradan hiçbir özel mekana geçemeyiz, bunu aklınızdan bir çıkarın.

Programın ne yaptığını kodlar ve görsel çizimler ile açıklarsanız üzerinden anlatabilirim. Müsait olduğumda da veritabanı ve fonksiyon şemaları ile anlatımımı destekleyeceğim.

Aceleniz yoktur inşallah?
Okay, sikinti yok. Boyle bir kural varsa bilmiyordum kusura bakmayin. Sadece daha kolay oluyor screen acip gostermek vs ondan dedim kasitli birsey yok rica ederim. Ben simdi antremana gidecegim ama kisaca soyle anlatayim. Beni staja alan yer sagolsunlar (31 yasinda yinede aldilar staja) bana basit projeler ile basladilar cogunu yaptim bitirdim. Simdi, bir album yapiyorum. Bir sayfada bir suru fotograf var onu secip satin aliyorsun o fotograf senin oluyor.

Ben MySQL'de database'imi kurdum. 2 DB var. Biri Img's DB oburu User DB. User DB icersinde : id-username-email-password-profile_img-selected_img-link-payment_status var.
Img DB'de ise : img_id-img(blob) ve Reserved(1-0) tarzinda.

Simdi, ben bunu tabi local'de test ettim(buglari yanlislari saymaz isek calisiyor😅). Sonra bu arkadasi ben Dockerize edip AWS'e de koydum. Benim sikintim Database'ler yada API kullanmayi ogrenmek degil.

Sende ricam madem ki bana yardim eli uzatiyorsun🫡, bana sunu gostermen: Ben uygulamami Wordpress'e Routelamaya mi calisayim ? Mesela boyle.Yoksa kendim Flask app'ime bir payment section yapip Bunu gibi mesela ustune iste bazi WordPress ozelliklerini kendi elimle kodlayayim mi ? Mesela admin page vesaire gibi seyler. Yani bunun dogrusu nedir sence? Yani bir metafor daha yapayim. Karanlikta birkac aydinlik goruyorum ama hangisi en dogru yol bunu kestiremiyorum maalesef.

Simdiden anlayisin ve ilgin cok tesekkur ederim. Allah razi olsun.🫡
PS:Hemen cevap veremeyebilirim ama insallah kendimi iyi anlatmisimdir. Cunku cozmek cok istiyorum. Birkac Ingiltereden Hintli arkadaslarim vardi bu isle ugrasan onlarada yazdim ama ses cikmadi daha. 🫤

Öncelikle buradan hiçbir özel mekana geçemeyiz, bunu aklınızdan bir çıkarın.

Programın ne yaptığını kodlar ve görsel çizimler ile açıklarsanız üzerinden anlatabilirim. Müsait olduğumda da veritabanı ve fonksiyon şemaları ile anlatımımı destekleyeceğim.

Aceleniz yoktur inşallah?
Hocam selam bir bakma ihtimaliniz olabildi mi?

Öncelikle buradan hiçbir özel mekana geçemeyiz, bunu aklınızdan bir çıkarın.

Programın ne yaptığını kodlar ve görsel çizimler ile açıklarsanız üzerinden anlatabilirim. Müsait olduğumda da veritabanı ve fonksiyon şemaları ile anlatımımı destekleyeceğim.

Aceleniz yoktur inşallah?
PS: Ben son acikcasi Route'lamanin daha kolay ve daha iyi olacagini dusundum ama tabi sizin yorumunuzuda merak ediyorum. Ilk basta Route'lamaya calisacagim yani buna cok iyi bir zaman ayiracagim.
 
Son düzenleme:
Hocam saat 2 gibi mesaj yazarım diye planladım kendimi. Mesajınıza detaylıca bakmadım, ama WordPress'e bağlamanın pek mantıklı bir şey olacağını düşünmüyorum. Yapacaksak tam bir program yapalım :)
Tamamdir sikinti yok. Ben o arada arastirma yapiyorum ama rica ederim bir attigim linklere bakin. Bende detayli bir arastirmasini yapiyorum. Sundan cok rahat olur. Mesela admin olaylari. Odeme olaylari hersey hazir WP'de. Yapan senaryolar gordum ve onlarada ulasmaya calisiyorum. 2 secenekte uygun. 2'sinede varim. Ben WordPress'e <iframe> araciligi ile eklemeye calistim ama boyut sikintisi yasadim. Eski ders aldigim bootcamp hocamada yazacagim. Yaparkende ogrenmek istiyorum ders gibi.
 
Sende ricam madem ki bana yardim eli uzatiyorsun🫡, bana sunu gostermen: Ben uygulamami Wordpress'e Routelamaya mi calisayim ? Mesela boyle.Yoksa kendim Flask app'ime bir payment section yapip Bunu gibi mesela ustune iste bazi WordPress ozelliklerini kendi elimle kodlayayim mi ? Mesela admin page vesaire gibi seyler. Yani bunun dogrusu nedir sence? Yani bir metafor daha yapayim. Karanlikta birkac aydinlik goruyorum ama hangisi en dogru yol bunu kestiremiyorum maalesef.
Bunu WordPress'e entegre etmek (route) biraz ilginç açıkcası. WordPress'e bir de PHP eklentisi yapıp Flask ile Wordpress'i bağlamanız gerekir. Aradaki bağlantı sizi yorar ve bence bu doğru bir yol değil.

Kendi programınıza admin panel ekleyin bence. Diğer tarafta hazır var gibi dursa da onu şekillendirmekle yenisini yapmak sizin durumda neredeyse aynı iş yüküne denk geliyor. Wordpress'in yazılımı kolaylaştırmayı hedeflediği kesimde değil sizin program. Bir Wordpress eklentisi yapmıyorsunuz.

Ben MySQL'de database'imi kurdum. 2 DB var. Biri Img's DB oburu User DB. User DB icersinde : id-username-email-password-profile_img-selected_img-link-payment_status var.
Img DB'de ise : img_id-img(blob) ve Reserved(1-0) tarzinda
Bu veritabanı şekli bana çok basit ve kusurlu geldi. Bir mağazanın veritabanı şöyle olmaldıır:


flaskmagazası.png


Eğer WordPress kullanırsanız buradaki bilgileri size vermesi için Python ile değil PHP ile kod yazmanız gerekecek. Yine pek bir şey kolaylaşmadığından her şeyin elinizin altında olması daha mantıklı. Bu yüzden WordPress'e bulaşmamalısınız bence.
 

Geri
Yukarı