TALHA KESKİN

Web Developer / UI Designer / Graphic & Web Designer

Kartal - İSTANBUL

Hoşgeldiniz. PHP, CSS, Javascript, jQuery, Bootstrap, PSD TO CSS, C#, .NET, Ajax, MsSQL, MySQL İşlerinizi yapabilirim.

Sosyal Profillerim
  • Yazı Detayı

PHP ile Otomatik Havale Onaylama

Bu Yazı PHP İçin Yazılmıştır.

Merhaba, bu yazımda sizlere özellikle E-ticaret sitelerinde çok fazla ihtiyaç duyulan bir durumdan bahsetmek istiyorum. Durumun Adı PHP ile Otomatik Havale Onaylama

 

Özellikle büyük bir E-ticaret siteniz var ise, müşterileriniz de biraz fazla ise. Mutlaka sistemde kredi kartı ile ödeme modülünü kullanıyor olmanız gerekiyor. Ancak Türkiye şartlarında insanlar kredi kartı bilgilerini her siteye girmek istemiyor.  Malum olduğu üzere dolandırıcılık olayları pek fazla. O nedenle ülkemizde hala halave ile ödeme yapma pek çok rağbet göremektedir.

PHP ile Otomatik Havale Onaylama

 

Ancak, havaleler pek çok web sitesi sahibi için ekstra bir iş gücü getirmektedir. Gelen havaleleri tek tek kontrol etmek. Gelenleri onaylamak, gelmeyenlere cevap yazmak gibi pek çok durum web site sahibinin canını sıkmaktadır. İşte bu durumun üstesinden gelebilmek için PHP ile Otomatik Havale Onaylama sistemini sizlere tanıtmak istiyorum.

PHP ile Otomatik Havale Onaylama

Öncelikle sistemin çalışabilmesi için, çalıştığınız bankanın size bir EFT veya Havale gelmesi durumunda belirteceğiniz bir mail adresine ödeme detaylarını atıyor olması gerekmektedir. Bu yazımda anlatacağım modüldeki senaryo, Enpara hesabına ödeme alan bir işletmenin Gmail’ine gelen bir bildirim maili kullanılmıştır. Eğer siz başka bir banka veya başka bir mail sunucusu kullanıyorsanız mutlaka kodlarda kendinize göre değişiklikler yapmalısınız.

Şimdi lafı çok uzatmadan kodları paylaşıp ardından açıklamaları getirmek istiyorum.

<?php
// Gmail için sunucu ve kullanıcı bilgilerinin girilmesi gerekmektedir.
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'ornekmail@gmail.com';
$password = 'sifrebilgileri';

// Banka Bilgilerinin Girilmesi Gerekmektedir.
$banka= "Enpara";

$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
 
//mail adresinize giren kod, okunmamış ve sizin bankanızdan gelen maillere bakıyor
$emails = imap_search($inbox,'UNSEEN From '.$banka);

if($emails) {
rsort($emails);
foreach($emails as $email_number) {
$headerInfo = imap_headerinfo($inbox,$email_number);
$structure = imap_fetchstructure($inbox, $email_number); 
$overview = imap_fetch_overview($inbox,$email_number,0);
$message = imap_qprint(imap_fetchbody($inbox,$email_number,1));
preg_match('#Tutar(.*?)TL</span></p></td>#si',$message,$degisken); //Eğer bankanız değişikse mutlaka değiştirin
preg_match('#klama(.*?)<td style="width: 3.3000002px#si',$message,$degisken2); //Eğer bankanız değişikse mutlaka değiştirin
preg_match('#Ad/ unvan(.*?)<tr valign="top">#si',$message,$degisken3); //Eğer bankanız değişikse mutlaka değiştirin
$gonderen = trim(strip_tags($degisken3[1]));
$gonderen = str_replace(":", "", $gonderen);
 
$aciklama = trim(strip_tags($degisken2[1]));
$aciklama = str_replace(":", "", $aciklama);
 
$tutar = trim(strip_tags($degisken[1]));
$tutar = str_replace(":", "", $tutar);
$tutar = explode(",", $tutar);
$tutar = $tutar[0];
 
if(strstr($aciklama, 'BORC-SC')) {
   $userid = explode("SC", $aciklama);
   $userid = $userid[1];
// Odeme basarili ise $userid havale kismindaki aciklamaya yazdirdiginiz ID numarasini verir.
// $tutar yatirilan tutar, virgulden sonrasini almaz.
// $gonderen gonderen kisi isim ve soyisim
}

/* mail okundu olarak isaretlenir */$status = imap_setflag_full($inbox, $overview[0]->msgno, "\Seen \Flagged");
}
}
 
imap_close($inbox);
?>

Görüldüğü üzere kodlar son derece basit. Ancak bu kodların doğru yorumlanabilmesi için özellikle Regex (Düzenli İfadeler) konusunda biraz uzmanlaşmış olmak gerekmektedir.

Herkese iyi çalışmalar dilerim.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*

*