Bildiklerim ve öğrendiklerim
Türk Bankaları Sanal Pos Sınıfı
Merhaba arkadaşlar Türk bankaları için sanal pos api ve class larını bulmak zordur. Ben bir tane buldum ve size tanıtayım dedim. Sınıfın ismi “PHP EST” ve Özgür Vatansever tarafından yazılmış. Sınıfı en alttaki adresten çekebilirsiniz. Sınıf aşağıdaki bankaları desteklemektedir ama isterseniz size yeni bankalar ekleyebilirsiniz.
# Garanti
# Akbank
# İşbank
# Finansbank
# Halkbank
# Anadolubank
Bu sınıf ile aşağıdaki tüm işlemler yapılabilir;
* Sipariş vermek,
* Karttan belli bir miktarı bloke etme
* Karttan bloke edilmiş miktarı çekme
* Siparişi iptal etme,
* Siparişten belli bir miktarı iade etme,
* Yapılmış bir siparişin detaylarını görebilme
Bu arabirimi kullanabilmeniz için “İşyeri No”, “Kullanıcı adı” ve “Parola” bilgileri gereklidir. Bütün bankaların Sanal POS arabirimlerinin her biri için ayrı ayrı bu bilgileri edinmeniz gerekmektedir. Bu bilgileri edinmek istiyorsanız “destek@est.com.tr” adresine e-posta yollayınız.
Bu sınıfının yukarıdaki işlemleri yapabilmesi için aşağıdaki metodlar tanımlanmış.
* pay() ~ Sipariş vermek yada karttan belli bir miktarın bloke işleri için bu metod çağrılır.
* postAuth() ~ Bloke edilen miktarı karttan çekmek için bu metod çağrılır.
* cancel() ~ Siparişi iptal etmek için bu metod çağrılır.
* refund() ~ Siparişten belli bir miktar para iade etmek için bu metod çağrılır.
* getDetail() ~ Bir siparişin detaylarını görmek için bu metod çağrılır.
Anlatırken “Akbank” Sanal POS test sunucusunu kullanacağız. Öncelikle EST sınıfını kullanarak bir nesne yaratmamız gerek. Test ortamı için aşağıdaki işyeri no, kullanıcı adı ve parola bilgilerini kullanacağız.
* isyeri no: 100100000
* kullanıcı adı: AKTEST
* parola: AKTEST123
Şimdi ödeme için test işlemimizin kodlarını yazalım.
<?php
// Sınıfı yükliyoruz
require 'est.php';
// api nesnemizi oluşturduk, $debug değişkeni FALSE ise gerçek çekim işlemi yapar.
$api = new EST("akbank", "100100000", "AKTEST", "AKTEST123", $debug = TRUE);
//$api = est.EST("garanti", "isyerino", "kullaniciadi", "parola", $debug = TRUE);
//$api = est.EST("isbank", "isyerino", "kullaniciadi", "parola", $debug = TRUE);
//$api = est.EST("finansbank", "isyerino", "kullaniciadi", "parola", $debug = TRUE);
$cc_num = "5456165456165454"; // kart numarası
$cc_cvv = "000"; //Cvv2 kodu
$month = "12"; // Kart geçerlilik ayı
$year = "12"; // Kart geçerlilik yılı
$amount = 10.00; // Çekilecek tutar
$taksit = 0; // peşin
$order_num = "qwaszx"; // sipariş numarası
// Para çekme işlemimizi yapıyoruz.
$result = $api->pay($cc_num, $cc_cvv, $month, $year, $amount, $taksit, $order_num);
//Sonucu ekrana bastık
print_r($result);
//Sonucu ekrana basmadan dönen sonuca göre işlemde yaptırabilirsiniz.
if ($result['response'] == 'Approved')
{
echo 'Onaylandı<br/>Sipariş kodu : '.$result['orderid'];
}
else
{
echo 'Ödeme onaylanmadı
<br/>Hata kodu: '.$result['return_code'].'
<br/>Hata mesajı : '.$result['error_msg'];
}
?>
Kredi kartına belirli bir miktar için bloke koymak için:
// Üstteki kart bilgileri ile deneme yapabilirsiniz, $typ değişkeni ile ön ödeme olarak belirttik $result = $api->pay($cc_num, $cc_cvv, $month, $year, $amount, $taksit, $order_num, $typ = "PreAuth"); //Sonucu ekrana basıyoruz. print_r($result);
Kredi kartından yapılan bloke miktarını çekmek için
//Sipariş numarası ve miktarı giriyoruz. $result = $api->postAuth($amount, $order_num); //Sonucu ekrana basıyoruz print_r($result);
Kredi kartından yapılan siparişi iptal etmek için ama bu işlem para çekilen günün akşamına kadar yapılabilir. Bankalar gün sonu yaptığında işlem çalışmayacaktır. Onun yerine alttaki geri ödeme yapabilirsiniz.
//Sipariş numarası ile iptal işlemini yapıyoruz. $result = $api->cancel($order_num); //Sonucu ekrana basıyoruz. print_r($result);
Karttan çekilen belirli bir miktar paranın geri ödenmesi için
//Geri ödenecek miktar ve sipariş numarası ile geri ödeme işlemi $result = $api->refund($amount = 5.00, $orderid = $order_num); //Sonuç ekrana basılıyor. print_r($result);
Yaptığınız geri ödemeyi iptal etmek için iade işleminden size cevap olarak gönderilen transid ve orderid değerlerini cancel() metoduna göndermeniz gerekmektedir.
//Sipariş numarası ve refund işleminden geri dönen transid $result = $api->cancel($orderid = $order_num, $transid = '10177-TxYA-1-1558'); //Sonuç ekranan basılıyor. print_r($result);
Yapılan bir ödemenin bilgilerini almak içinse
//Sipariş numarası ödeme detaylarını alıyoruz $result = $api->getDetail($order_num); //Sonucu ekrana basıyoruz. print_r($result);
Sonuçta kredi kartı ile yapılabilecek bütün işlemleri yaptık herhalde ![]()
Ama şunu belirtmeliyimki bu sınıf 3D destekli değildir yakın zamanda 3D destekli yeni versiyonu gelecek o zaman yeni bir konu ile size duyururum. Özgür Vatansever arkadaşımıza bu sınıf için tekrardan teşekkür ederiz.
PHP EST
http://code.google.com/p/php-est/
Python EST (Türk Bankaları Sanal Pos Sınıfı Python versiyonu)
http://code.google.com/p/python-est/
İlginiz için teşekkürler
| This entry was posted by Erhan on 13 Temmuz 2010 at 10:21, and is filed under Php. Follow any responses to this post through RSS 2.0. Yorum veya kendi sitenizden geribildirim yapabilirsiniz. |