PDA

Tam Versiyonu Gör : Bank_Class: birden çok banka ile otomatik satış


Cem KARACA
18-06-2008, 11:57
Bank_Class girilen Kredi Kartının prefiksine göre kartların hangi bankaya ait olduğunu algılayıp otomatik olarak bu bankadan satış yapılmasını destekler. Sistemi bu şekilde kullanabilmek için, tahsilatın yapılmasını istediğiniz tüm bankalardan Sanal POS hesabı almalısınız, tabi isteğinize göre sadece sizin belirlediğiniz bankalardan tahsilat yapılabilir ve prefiksi uymayan kartlarında tanımladığınız varsayılan Sanal POS sisteminden tahsil edilmesini sağlayabilirsiniz.
Örnek bir uygulama olarak bir Yapı Kredi ve Garanti bankalarını ele alalım ve bu iki bankanın kartları dışında kalan kartların ise Garanti Bankası hesabı ile tahsil edilmesini isteyelim, kod şöyledir:

Genel Ayarlar:

define("POSNET", 1);
define("AKBANK", 2);
define("GARANTI",3);
define("ISBANK", 4);
define("FORTIS", 5);
define("HSBC", 6);
define("FINANS", 7); // bu sayıları değiştirmeniz önerilmez

require_once "Banka/Banka_class.php";
$Banka = new Banka(true, true); // Set Test , Set debug
Yapı Kredi ve Garanti tanımlamaları

$Banka->SetPOSNET($yk_mid, $yk_tid, $yk_orderid, $yk_username, $yk_password, $yk_hostname);
// $yk_hostname: müşteri IP adresi
$Banka->SetGaranti($gr_name, $gr_password, $gr_clientid, $gr_oid);
Bu adımdan sonra varsayılan bankanın ayarlanması gerekmektedir:

$Banka->SetDefault(GARANTI);
*Not: SetDefault komutu, varsayılan olarak atanan bankanın bilgileri girildikten sonra kullanılmalıdır, aksi halde hata verir.

Sonraki adımda müşteriye ait kredi kartı bilgileri sınıfa bildirilmelidir:

$Banka->SetCC("ccno", "ay (iki karakter)", "yıl (iki karakter)", "toplam miktar", "cvv", "Müşteri@e-mail.adresi", "Müşteri ismi", "Müşteri Soyadı", "adres","Şehir");
En son adım olarak kredi kartı prefiksine gmre otomatik satış yapılması:

if($Banka->DoSaleAuto(0)==true) // 0 taksit (peşin satış)
{
$logkey = $Banka->GetHostlogkey();
$AuthCode = $Banka->GetAuthCode();
$Banka->GetTransId();
} else
{
$ProcReturnCode = $Banka->GetResponseCode();
$ErrMsg = $Banka->GetResponseText();
}
Eğer daha önceki Bank_Class kodlarına göz attıysanız, fark edeceğiniz gibi tek değişiklik "DoSale" komutu yerine "DoSaleAuto" komutunun kullanılmasıdır.

DoSaleAuto komutu, girilen kartın prefiksine bakarak kartın ait olduğu bankadan çekim yapacaktır, ancak kartın ait olduğu banka tanımlanmamış ise "SetDefault" komutu ile tanımlamış olduğunuz varsayılan bankadan çekim yapacaktır.