Geçtiğimiz aylarda PayPal site içeriğine Türkçe dil desteğinide dahil ederek Türk kullanıcılarına gelecek için vaadde bulunmuş oldu. Bu konu ile ilgili bir çok yazı yazıldı ve tahminimce 2009 yılı sonunda Türk web sitesi sahipleri kendi sitelerinden PayPal kullanarak parasal işlem yapabilecek ve kazandıkları paraları Türk bankalarına (inşallah) havale yolu ile transfer edebilecekler. Bu önümüzdeki aylarda ne zaman gerçekleşir bilemiyorum ama bunun için bir alt yapı hazırlığına girmeye başlamanın bence zamanı geldi.
İşte bu sebeple PayPal sistemini kendi sitemize uyarlamanın en kolay yolu bunun için PHP ile hazırlanmış bir class kullanmak olduğunu farkettim. Küçük bir araştırmadan sonra aşağıda örnek PayPal satın al butonu oluşturma için kullanılmış class’ı görebilirsiniz. Biraz incelediğinizde kullanım için gerekli alanları Türkçe’ye çevirmeye çalıştım. Hangi satırın ne amaçla kullanıldığı belirgin. Bunu sitenize entegre etmekte oldukça kolay.
http://www.phpclasses.org/browse/package/2632.html bu adresten edineceğiniz PayPal Button Generator isimli class sayesinde bu sistemi kendi veritabanınız için oldukça kolay entegre edebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | require_once('paypal.inc.php'); $button = new PayPalButton; $button->accountemail = 'paypal@email.adresiniz'; $button->custom = 'PayPaldan dönecek veriler içerisinde size ait bilgi'; //Yukarıdaki satırda yer alan custom değeri PayPal'a gönderilen bilgiler sonrasında dönecek olan değişkenler içerisinde yer alacaktır. IPN ve geri dönüş sayfanızda $_POST['custom'] olarak okunabilir. Genelde DB Id'si ya da fatura numarası gibi bilgiler gönderilebilir. Maksimum 150 karakter değerindedir. $button->currencycode = 'TRY'; //Para birimi $button->target = '_blank'; //Hangi sayfada açacağı $button->class = 'paypalbutton'; //PayPal butonuna vermek istediğiniz CSS şekli $button->width = '150'; //PayPal butonu genişliği. İsteğe bağlı kullanılabilir $button->image = 'http://www.alanAdiniz.com/paypal/logo.jpg'; //150x50px boyutlarında logo. PayPal'a yönlenen sayfada logonuz olarak göterilecek. $button->buttonimage = '/paypal/purchase.jpg'; //Buton için kullanmak istediğiniz resim dosyası. İsteğe bağlı kullanılabilir. $button->buttontext = 'Satın AL'; //Butonun üzerine gelindiğinde belirecek yazı $button->askforaddress = false; //Satın alan kişiden eposta adresi istenip istenmeyeceği. True / False $button->return_url = 'http://www.alanAdiniz.com/onaylandi.php'; //Kullanıcının satın alma işlemi sonrasında sitenizde yönlendirileceği sayfa $button->ipn_url = 'http://www.alanAdiniz.com/onaylandi.php'; //IPN adresiniz. $button->cancel_url = 'http://www.alanAdiniz.com/vazgec.php'; //Kişinin satın alma işlemini iptal ettiği durumda yönlendirilecek adres //------------------------------------ // Bu noktadan sonra aşağıdaki Ürünler veya Abonelikler başlıkları altındaki alanlardan birini seçerek kullanmalısınız. // Ürünler kısmını satış yapacağınız zaman, Abonelikler site aboneliği satacağınız zamanlarda kullanılacak //------------------------------------ //Ürünler //Yazım şekli: $button->AddItem(urun_adi, adedi, ucreti, urunKodu, kargo, kargo2, handling, vergi, alan1_degeri, alan1_ozelligi, alan2_degeri, alan2_ozelligi); //Bir kaç örnek $button->AddItem('Item Name','1','100.00','wsc001','2.00','1.00','5.00','0.00','Renk','Kırmızı Beyaz Çizgili','Beden','XXL'); $button->AddItem('Item Name','1','100.00','wsc001'); //1 adet, kargo yok, no handling, varsayılan vergi $button->AddItem('Item Name','1','100.00','wsc001','','','','0.00'); //1 adet, kargo yok, no handling, VERGİ YOK $button->AddItem('Item Name','3','100.00','wsc001','10.00'); //3 adet, 10 lira kargo, no handling, varsayılan vergi //Abonelikler //$button->AddSubscription('Item Name','10.00','SUB100',56,'D');//her 56 günde bir //$button->AddSubscription('Item Name','10.00','SUB100',1,'M'); //her ay //$button->AddSubscription('Item Name','10.00','SUB100',1,'Y'); //her yıl $button->OutputButton(); |

Paypal gayet iyi birşey yaptı ama türk bankalarıyla tam bir uyum içinde çalışmıyor diye biliyorum. 1 kere bile kullanmışlığım yok fakat çevremde paypal ile mecburi iş yapan arkadaşlarım var iyi güzel diyorlar ama komisyon olayı baya sinirlerine dokunuyor çaktırmıyorlar
@Garu; geçtiğimiz haftalarda PayPal, Türkçe yayına başladı. Okuduğum bazı haberlere göre de Türkiye’de bir ofis açıp Türk internet pazarına da giriş yapacaklar. Şu an tek eksiği Türk bankalarına havale yapamaması. Dilerseniz kredi kartınıza ödemenizi 5 dolar komisyon karşılığında alabiliyorsunuz ama hesaba alamıyorsunuz. İşte bu hesaba havale de bu sene sonuna doğru tamamlanacakmış diye duydum.
Hocam, Biraz daha detaylı olarak anlatsaydınız çok iyi olurdu. Şu an tam incelemedim ancak sizin de örnek bi çalışmanız olsa çok iyi olurdu!
önceki yorumumdan vazgeçiyorum gerçekten çok kolaymış. Sende gayet güzel açıklamışsın teşekkürler.
@Metin; gerekli olursa teknik olarak yardımda bulunabilirim. herhangi bir durumda sıkıntı yaşarsan haber verebilirsin. Kolay gelsin. Bu arada dün duydum ki artık PayPal Türk bankalarına havale yapmaya başlamış.
Merhabalar. Ben ücretli bir üyelik sistemi yazmaya çalışıyorum. Ücreti Paypal ile alacağım tabii… Ama siteme geri dönüşünde kimin ödeme yaptığını kaydetmem ve üyeliğini aktifleştirmem gerek.
PayPal’dan HTML kodunu alıp ödeme miktarını da belirten paypal sayfasına yönlendirmeyi başardım ama sonrası muallak…
Eğer yardımcı olursanız çok sevinirim.
http://www.csharpnedir.com/forum2/forum_posts.asp?TID=23327
Özgür S. – son blog yazısı..Hiç Mümkün Olur Mu Ki… Bediuzzaman Said Nursî
$button->custom = ‘PayPaldan dönecek veriler içerisinde size ait bilgi’; satırına dikkatinizi çekmek istiyorum. Bu satırdaki custom isimli değişken sizin işlem sonucunda ödeme alındı sayfanıza POST olarak gönderilecek olan değişkendir. Siz burada istediğiniz değeri yani ürün id’sini belirtebilirsiniz. Ödeme alındı sayfasında bunu kontrol ederek db’de kayıt işlemini gerçekleştirebilirsiniz. Lakin şuna dikkat etmek gerekir; ödeme alındı sayfasına yönlendirme sonucu sayfa yenilenirse (refresh edilirse) db’deki işlem yenilenecektir. Yani satın alma işlemi iki kere gerçekleşmiş gibi görünebilir. Bu sebeple tavsiye custom değişkeni değeri olarak örneğin session’a kaydettiğiniz anlamsız bir kod ile ürün id’sini birleştirip şifrelemeniz. Örneğin 31313LKJLKH:147 ilk sayı ve harf karışımı anlamsız kod ve bunu ödemeye göndermeden önce session’a yazdırın. :‘dan sonraki sonraki 147 sayısıda ürün id’si olsun. Bu ikisini custom değerine yazdırırken base64_encode da kullanabilirsiniz ya da kendi şifreleme fonksiyonunuzu da yaratıp kullanabilirsiniz. Ödeme sonrası geri dönüşte ise POST ile gelen custom değişkenini decode edip (gerçek anlamına geri döndürüp) :’den ayırarak kendimiz için yarattığımız anlamsız kodu session ile karşılaştırıp eğer aynı ise ürün id’sine göre işlemi yapıp anlamsız kodumuzu session’dan silmeliyiz. Bu sayede sayfayı yenilediğinde session değeri olmayacağı için ürün id’sinin yeniden gönderilmesi işlemin yapılmaması ve tekrarlanmaması anlamına geleceğinden kendi ödeme sonrası kontrolünüzü sağlamış olursunuz.