Yaptığım bir alışveriş sitesine Garanti bankasının sanal pos sistemini entegre etmem gerekiyordu. Dün bunun için PHP ile ufak bir sınıf yazdım ve sizlerle paylaşmak istiyorum. (PHP 5+)
CURL kullanarak yaptığım bu sistem XmlToArray kütüphanesini kullanmaktadır. Gerekli olan XmlToArray kütüphanesi, arşiv dosyasının içinde bulunmaktadır.
Yazdığım bu kütüphaneyi herhangi bir yerde kullanabilirsiniz. Kütüphaneyi kullanmakta herhangi bir zorluk çekeceğinizi düşünmüyorum. Gayet anlaşılır bir dille yazdım. Zaten garanti bankasının istediği zorunlu parametrelerin Türkçe karşılıklarını dosya içinde bulabilirsiniz.
Aşağıda ki kod parçacığı ile kütüphaneyi kullanabilirsiniz.
< ?
require_once("SanalPos.php");
$sp = new SanalPos();
$sp->CreditCard = ‘5454699546548272′; // Sallamasyon (:
$sp->Expires = ‘06/10′; // Sallamasyon (:
$sp->CVV2 = ‘354′; // Sallamasyon (:
$sp->Total = ‘5.50′;
# $sp->Installment = ”; # Taksit Adeti
$sp->send();
?>
Dosyayı buradan indirebilirsiniz

Arşiv dosyasında ki kodlarda ufak bir düzeltme yaptım.
“send” methodunun normalde “$data” değişkenini döndürmesi gerekiyordu. onu koymayı unutmuşum.
Çok teşekkürler arkadaşım.
Bugün bende sitenin sanal post kısmını yazacağım.
Senin dökümanın çoook faydalı olacak.
Allah razı olsun
rica ederim.
Merhaba, sınıf için teşekkürler.
Ancak ben çalıştıramadım. send fonksiyonu hiçbir sonuç döndürmüyor.
Merhaba,
Yaptığım bir yorumda birşeyi eklemeyi unutmuştum. Ve sonradan tekrar dosyayı güncellemiştim. Dosyayı tekrar çekip deneyebilirsiniz.
Şu şekilde olmalı.
$cc_result = $sp->send();
if($result !== FALSE){
if($cc_result['CC5Response']['ProcReturnCode'] == ‘00′){
// İşlem Başarılı
}
else{
print($sp->getError($cc_result['CC5Response']['ProcReturnCode']));
}
}
Evet çalıştı
Ne kadar teşekkür etsem azdır.. çok teşekkürler.
rica ederim. işinize yaradıysa ne mutlu bana (:
@morad, teşekkür ederim.
test için EST nin $url’si şuydu galiba: https://cc5test.est.com.tr/servlet/cc5ApiServer
kullanıcı adı ve şifre: distest1
client id: 212345678
Bunları sizin kodlarınızda denedim ve hata kodu 99 aldım.
Elimde sanal pos bilgileri olmadan test amacıyla sizin kodlarınızda bu alanlar için ne kullanmalıyım?
Merhaba @Serdar,
Test için url değiştirmenize gerek yok. Live değişkenini değiştirmeniz yeterlidir. Zaten verdiğim örnekte test modunda çalışacak şekilde geliyor olması lazım. Gerekli yerlere gerekli bilgileri girmeniz test edebilmeniz için yeterlidir.
Live değişkeninde “T” değeri var,ve açıklamasında demo mode yazıyor.Test ederken yine “T” kalacak tamam.
Ama client id,username ve password değişkenleri ne olacak test sürecinde?
Boş bıraksamda,yukarıda verdiklerimi girsemde hata kodu 99 dönüyor geri.
aynı şekilde “hata kodu 99″ veriyor
Merhaba,
Zaten boş bırakmamanız gerekiyor. Test ederken, Garanti bankasının sizlere vermiş olduğu gerçek bilgileri kullanmanız gerekmektedir.
Merhaba,
Bana sistem onaylandıktan sonra garanti iki tane mail gönderdi;
Burada verilen bilgileri sitenizden indirdiğim kod içerisine giriyorum lakin 99 hata kodunu alıyorum
Merchant ID : xxxxxx
Password : xxxxx
Bunu user pass olarak giiriyorum, firmanıza ait xxxx bilmem ne kodlu dediğinide client ID ye giriyorum ve test.php yi çalıştırdığımda hata kodu : 99 alıyorum yapmaam gereken başka birşey varmı ?
Sayın Yetkili,
Firmanıza ait xxxxx mağaza kodlu sanal posunuza 3D Secure tanımı yapılmıştır. 3D Secure uygulamasını sisteminizde devreye almak için sanal pos yönetim ekranlarına giriş yaptıkdan sonra ana menu sayfasında bulunan 3D Secure Dökümanları içerisinde bulunan 3d_pay modelini sisteminize entegre edebilirsiniz.
Hash hesaplaması için gerekli olan işyeri anahtarını sanal pos yönetim ekranlarına giriş yaptıktan sonra Yönetim bölümündeki 3D Güvenlik Anahtarı Değiştirme menusunu kullanarak tanımlayabilirsiniz.
Post adresi olarak https://ccpos.garanti.com.tr/servlet/gar3Dgate kullanmalısınız.
Bilgilerinize sunarız. İyi çalışmalar.
Saygılarımızla,
Sayın İşyerimiz,
Garanti Ulusal Güvenlik Programı (UGP) kaydınız yapılmıştır.
UGP kurulumunu tamamlayabilmeniz için gerekli tüm bilgiler Sanal POS yönetim ekranınızın “YARDIM” bölümünde bulunmaktadır.
Kurulum için gerekli olan bilgiler:
Merchant ID : xxxxxx
Password : xxxxx
Daha detaylı bilgi için Sanal POS yönetim ekranınızın “YARDIM” bölümündeki dokümantasyonu inceleyebilirsiniz.
Saygılarımızla,
Garanti e-Ticaret
Merhaba @Can
Şu anda hata kodlarının tanımları yanımda olmadığı için size yardımım dokunamaz, ancak pazartesi bu konu hakkında bilgi verebilirim.
Fakat garanti bankasının sizin için tanımlamış olduğu yönetim panelinden ilgili dökümanları indirip hata kodunun ne olduğunu görebilirsiniz.
Merhaba ;
eğer bankanızın size verdiği dökümanda
Merchant ID : xxxxxx
Password : xxxxx
gibi bilgiler bulunuyorsa bankanız size 3D Secure pos vermiş demektir. ve yukarıda yazılı kod sizin işinizi görmez.
3D pos ile destek için ardx @ hotmail.com adresinden benimle iletişime geçebilirsin